In Oracle Database, il NLS_COLLATION_NAME()
La funzione restituisce il nome di una determinata confronto, in base al suo ID. Si passa l'ID di confronto quando si chiama la funzione, che restituisce il nome di confronto.
Sintassi
La sintassi è questa:
NLS_COLLATION_NAME(expr [, flag ])
Dove expr
è l'ID di confronto di tipo NUMBER
.
Il flag
argomento è un argomento facoltativo che si applica solo alle regole di confronto Unicode Collation Algorithm (UCA). Determina se la funzione deve restituire la forma breve o la forma lunga del nome delle regole di confronto.
Il flag
argomento può essere uno dei seguenti:
Bandiera | Descrizione |
---|---|
'S' o 's' | Restituisce la forma abbreviata del nome di confronto. |
'L' o 'l' | Restituisce la forma lunga del nome di confronto. |
Il valore predefinito per questo flag è 'L'
.
Esempio
Ecco un esempio di base:
SELECT NLS_COLLATION_NAME(70)
FROM DUAL;
Risultato:
XAZERBAIJANI
Ecco altri esempi:
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;
Risultato:
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Bandiera a forma lunga/corta
Come accennato, possiamo passare un flag facoltativo per determinare se restituisce la forma breve o la forma lunga del nome di confronto.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;
Risultato:
Long Short __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN UCA0620_THAI
Il valore predefinito per questo flag è 'L'
. Quindi, se omettiamo il flag, viene restituito il modulo lungo:
SELECT
NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL;
Risultato:
Default __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN
Questo flag si applica solo alle regole di confronto Unicode Collation Algorithm (UCA).
Se applichiamo il flag a una confronto non UCA, non vediamo alcuna differenza:
SELECT
NLS_COLLATION_NAME(4112, 'L') AS "1",
NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL;
Risultato:
1 2 ___________ ___________ FRENCH_M FRENCH_M
Fascicolazione non valida
Il passaggio di un nome di confronto non valido risulta null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(4113)
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.
Argomento nullo
Passaggio null
restituisce null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(null)
FROM DUAL;
Risultato:
null
Conteggio argomenti errato
La chiamata della funzione senza passare alcun argomento genera un errore:
SELECT NLS_COLLATION_NAME()
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT NLS_COLLATION_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:
E anche passare troppi argomenti provoca un errore:
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME(4112, 'S', 'L') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: