I Oracle Database er NLS_COLLATION_ID()
funktion returnerer ID'et for en given sortering. Du videregiver sorteringsnavnet, når du kalder funktionen, og det returnerer sorterings-id'et.
Syntaks
Syntaksen ser sådan ud:
NLS_COLLATION_ID(expr)
Hvor expr
er sorteringsnavnet af typen VARCHAR2
.
Eksempel
Her er et grundlæggende eksempel:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;
Resultat:
70
Her er nogle flere eksempler:
SELECT
NLS_COLLATION_ID('UCA0620_THAI') AS "1",
NLS_COLLATION_ID('UCA0620_TSPANISH') AS "2",
NLS_COLLATION_ID('CANADIAN_M') AS "3",
NLS_COLLATION_ID('FRENCH_M') AS "4"
FROM DUAL;
Resultat:
1 2 3 4 _________ _________ _______ _______ 208920 208917 4116 4112
Ugyldig sortering
Ved at videregive et ugyldigt sorteringsnavn resulterer det i null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
FROM DUAL;
Resultat:
null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Nul-argument
Sender null
returnerer null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;
Resultat:
null
Forkert antal argumenter
Kaldning af funktionen uden at sende nogen argumenter resulterer i en fejl:
SELECT NLS_COLLATION_ID()
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID() 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:
Og at sende for mange argumenter resulterer også i en fejl:
SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M') 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: