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

NLS_CHARSET_ID() Funzione in Oracle

In Oracle, il NLS_CHARSET_ID() la funzione restituisce il numero ID del set di caratteri di un determinato set di caratteri. Passi il nome del set di caratteri come argomento e restituisce il suo ID.

Sintassi

La sintassi è questa:

NLS_CHARSET_ID(string)

Dove string è il nome del set di caratteri per il quale si desidera restituire l'ID.

Esempio

Ecco un esempio di base:

SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;

Risultato:

2000

Eccolo con un diverso set di caratteri:

SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;

Risultato:

871

Argomento nullo

Se l'argomento è null , il risultato è null :

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

Risultato:

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

Nomi di set di caratteri non validi

Il passaggio di un nome di set di caratteri non valido restituisce null :

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

Risultato:

   NLS_CHARSET_ID('OOPS') 
_________________________ 
                     null 

Conteggio argomenti errato

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

SELECT NLS_CHARSET_ID()
FROM DUAL;

Risultato:

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:

Tuttavia, se si passano più nomi di set di caratteri, viene restituito l'ID del primo:

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

Risultato:

871