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

Función NLS_CHARSET_DECL_LEN() en Oracle

En Oracle, el NLS_CHARSET_DECL_LEN() La función devuelve la longitud de la declaración (en número de caracteres) de un NCHAR columna.

Sintaxis

La sintaxis es así:

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Donde byte_count es el ancho de la columna y char_set_id es el ID del conjunto de caracteres de la columna.

Ejemplo

He aquí un ejemplo básico:

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Resultado:

100

Aquí está con un ID de juego de caracteres diferente:

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Resultado:

50

Obtener el ID del juego de caracteres

Podemos usar el NLS_CHARSET_ID() función para devolver el ID del juego de caracteres para un juego de caracteres dado:

Ejemplo:

SELECT NLS_CHARSET_DECL_LEN(
    100, 
    NLS_CHARSET_ID('AL16UTF16')
    )
FROM DUAL;

Resultado:

50

Argumento nulo

Si algún argumento es null , el resultado es null :

SET NULL 'null';
SELECT 
    NLS_CHARSET_DECL_LEN(null, 1) AS r1,
    NLS_CHARSET_DECL_LEN(100, null) AS r2
FROM DUAL;

Resultado:

     R1      R2 
_______ _______ 
   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

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

SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

Y pasar demasiados argumentos también da como resultado un error:

SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action: