In Oracle Database, il NLS_CHARSET_NAME()
La funzione restituisce il nome del set di caratteri di un determinato set di caratteri, in base al suo ID. Si passa l'ID del set di caratteri come argomento e la funzione restituisce il suo nome.
Sintassi
La sintassi è questa:
NLS_CHARSET_NAME(number)
Dove number
è l'ID del set di caratteri per cui vuoi restituire il nome.
Esempio
Ecco un esempio di base:
SELECT NLS_CHARSET_NAME(1)
FROM DUAL;
Risultato:
US7ASCII
Eccolo con un ID set di caratteri diverso:
SELECT NLS_CHARSET_NAME(871)
FROM DUAL;
Risultato:
UTF8
Argomento nullo
Se l'argomento è null
, il risultato è null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
FROM DUAL;
Risultato:
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.
ID set di caratteri non valido
Il passaggio di un ID set di caratteri non valido risulta null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;
Risultato:
null
Tuttavia, il passaggio del tipo di dati errato restituisce un errore:
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT NLS_CHARSET_NAME('oops') FROM DUAL Error report - ORA-01722: invalid number
Conteggio argomenti errato
La chiamata della funzione senza passare alcun argomento genera un errore:
SELECT NLS_CHARSET_NAME()
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT NLS_CHARSET_NAME() 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:
Ma il passaggio di più ID di set di caratteri comporta la restituzione del nome del primo:
SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;
Risultato:
UTF8