sql >> Base de Datos >  >> RDS >> Oracle

Función NCHR() en Oracle

En Oracle, el NCHR() La función devuelve el carácter que tiene el equivalente binario a su argumento en el juego de caracteres nacional.

Es el equivalente a usar CHR() función con USING NCHAR_CS argumento.

Sintaxis

La sintaxis es así:

NCHR(number)

Donde number es un NUMBER valor, o cualquier valor que se pueda convertir implícitamente a NUMBER .

El valor devuelto siempre es NVARCHAR2 .

Ejemplo

Aquí hay un ejemplo simple para demostrarlo:

SELECT NCHR(257)
FROM DUAL;

Resultado:

   NCHR(257) 
____________ 
ā           

Aquí proporcioné un número y NCHR() devolvió el carácter correspondiente en el juego de caracteres nacional. En este caso, el entero 257 se asigna al carácter ā .

Podemos lograr el mismo resultado con CHR() función al usar el USING NCHAR_CS argumento:

SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;

Resultado:

   CHR(257USINGNCHAR_CS) 
________________________ 
ā                       

Valores nulos

Pasando null devuelve null :

SET NULL 'null';

SELECT NCHR(null)
FROM DUAL;

Resultado:

   NCHR(NULL) 
_____________ 
null          

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null ocurre 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 incorrecto

Llamando a NCHR() sin pasar ningún argumento devuelve un error:

SELECT NCHR()
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT NCHR()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

Y pasar el número incorrecto de argumentos da como resultado un error:

SELECT NCHR(1, 2, 3)
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT NCHR(1, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 19
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*Cause:    
*Action: