En Oracle Database, el ASCIISTR()
La función devuelve una versión ASCII de la cadena dada en el conjunto de caracteres de la base de datos.
Sintaxis
La sintaxis es así:
ASCIISTR(char)
Donde char
es una cadena o una expresión que se resuelve en una cadena, en cualquier conjunto de caracteres.
Los caracteres que no son ASCII se convierten a la forma \xxxx
, donde xxxx
representa una unidad de código UTF-16.
Ejemplo
Este es un ejemplo:
SELECT ASCIISTR('Fish')
FROM DUAL;
Resultado:
Fish
En este caso, el resultado es el mismo que la entrada, porque la entrada usó caracteres ASCII.
Aquí hay otro que usa caracteres que no son ASCII:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Resultado:
\0E1B\0E25\0E32
Aquí, obtenemos cada uno de los tres caracteres devueltos en sus equivalentes ASCII.
En este caso, la entrada (ปลา
) es la palabra tailandesa para "pez". Esto se puede pronunciar como "Plā".
Esto es lo que sucede cuando pasamos Plā
al ASCIISTR()
función:
SELECT ASCIISTR('Plā')
FROM DUAL;
Resultado:
Pl\0101
En este caso, los dos primeros caracteres que pasamos son caracteres ASCII, pero el tercer carácter no es ASCII. Por lo tanto, la función devuelve los primeros dos caracteres sin cambios y el tercero convertido a ASCII.
Aquí hay otro que pasa น้ำ
, que es la palabra tailandesa para "agua":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Resultado:
\0E19\0E49\0E33
Valores nulos
Si el argumento es null
, el resultado es null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Resultado:
null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos no válidos
Llamando a ASCIISTR()
sin ningún argumento da como resultado un error:
SELECT ASCIISTR()
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"