Oracle
 sql >> Database >  >> RDS >> Oracle

NLS_CHARSET_DECL_LEN() Funzione in Oracle

In Oracle, il NLS_CHARSET_DECL_LEN() La funzione restituisce la lunghezza della dichiarazione (in numero di caratteri) di un NCHAR colonna.

Sintassi

La sintassi è questa:

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Dove byte_count è la larghezza della colonna e char_set_id è l'ID del set di caratteri della colonna.

Esempio

Ecco un esempio di base:

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Risultato:

100

Eccolo con un ID set di caratteri diverso:

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Risultato:

50

Ottieni l'ID del set di caratteri

Possiamo usare il NLS_CHARSET_ID() funzione per restituire l'ID del set di caratteri per un determinato set di caratteri:

Esempio:

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

Risultato:

50

Argomento nullo

Se un argomento è null , il risultato è null :

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

Risultato:

     R1      R2 
_______ _______ 
   null    null

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Conteggio argomenti errato

La chiamata della funzione senza passare alcun argomento genera un errore:

SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;

Risultato:

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:

E anche il passaggio di troppi argomenti provoca un errore:

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

Risultato:

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: