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

Función NLS_CHARSET_ID() en Oracle

En Oracle, el NLS_CHARSET_ID() La función devuelve el número de identificación del juego de caracteres de un juego de caracteres dado. Pasa el nombre del conjunto de caracteres como argumento y devuelve su ID.

Sintaxis

La sintaxis es así:

NLS_CHARSET_ID(string)

Donde string es el nombre del conjunto de caracteres para el que desea devolver el ID.

Ejemplo

He aquí un ejemplo básico:

SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;

Resultado:

2000

Aquí está con un juego de caracteres diferente:

SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;

Resultado:

871

Argumento nulo

Si el argumento es null , el resultado es null :

SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;

Resultado:

   NLS_CHARSET_ID(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.

Nombres de conjuntos de caracteres no válidos

Pasar un nombre de conjunto de caracteres no válido da como resultado null :

SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;

Resultado:

   NLS_CHARSET_ID('OOPS') 
_________________________ 
                     null 

Recuento de argumentos incorrecto

Llamar a la función sin pasar ningún argumento da como resultado un error:

SELECT NLS_CHARSET_ID()
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_ID()
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:

Sin embargo, al pasar varios nombres de conjuntos de caracteres, se devuelve el ID del primero:

SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;

Resultado:

871