Función escalar ASCII_STR o ASCIISTR
La función ASCII_STR devuelve una versión ASCII de la serie en el CCSID ASCII del sistema. El ASCII CCSID del sistema es el SBCS ASCII CCSID en el sistema MIXED=NO o el MIXED ASCII CCSID en el sistema MIXED=YES.
El esquema es SYSIBM.
- expresión-serie
- Una expresión que devuelve un valor de un carácter incorporado o serie gráfica. Una serie de caracteres no debe ser datos de bit. la expresión de cadena debe ser una cadena ASCII, EBCDIC o Unicode.
El argumento también puede ser un tipo de datos numérico. El argumento numérico se convierte implícitamente a un tipo de datos VARCHAR.
ASCII_STR devuelve una versión ASCII de la serie.
Si el sistema ASCII CCSID no admite el carácter de barra invertida (\), la expresión de cadena no debe contener caracteres no ASCII.
Los caracteres que no son ASCII se convierten en caracteres UTF-16 y aparecen en el resultado en el formato \ xxxx (o \ xxxx \ yyyy para caracteres sustitutos), donde xxxx e yyyy representan una unidad de código UTF-16.
MIN( ( 5*n),32704). Donde n es el resultado de aplicar las fórmulas de la Tabla 5 basadas en los tipos de datos de entrada y salida.El resultado de la función es una cadena de caracteres de longitud variable en el sistema ASCII CCSID. Si la longitud real de la cadena de resultados supera el máximo para el tipo de devolución, se produce un error.
El resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo.
Ejemplo
El siguiente ejemplo devuelve la cadena ASCII equivalente a la cadena Unicode ( UTF-8 ), '4869206D616D6520697320D090D0BDD0B4D180D0B5D0B9202020F0908080':SET :HV1 =
ASCII_STR(X'48692C206D79206E616D6520697320D090D0BDD0B4D180D0B5D0B920F0908080');A :HV1 se le asigna el valor 'Hola, mi nombre es \0410\043D\0434\0440\0435\0439 \D800\DC00'. En este ejemplo, los caracteres no ASCII ( UTF-8 ) D090, D0BD, D0B4, D180, D0B5 y D0B9 se convierten en \0410\043D\0434\0440\0435\0439 y el carácter no ASCII F0908080 se convierte en \D800\DC00.
SET :HV1 = ASCII_STR('Hi, my name is A n de r é é (Andrei)');
A :HV1 se le asigna el valor "Hola, mi nombre es \0410\043D\0434\0440\0435\0439 (Andrei)"
