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