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