I Oracle Database, NLS_COLLATION_ID()
funktion returnerar ID:t för en given sortering. Du skickar sorteringsnamnet när du anropar funktionen, och det returnerar sorterings-ID:t.
Syntax
Syntaxen ser ut så här:
NLS_COLLATION_ID(expr)
Där expr
är sorteringsnamnet, av typen VARCHAR2
.
Exempel
Här är ett grundläggande exempel:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;
Resultat:
70
Här är några fler exempel:
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
Ogiltig sortering
Att skicka ett ogiltigt sorteringsnamn resulterar i null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
FROM DUAL;
Resultat:
null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null
uppstår som ett resultat av en SQL SELECT
påstående.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Nollargument
Skickar null
returnerar null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;
Resultat:
null
Inkorrekt antal argument
Att anropa funktionen utan att skicka några argument resulterar i ett fel:
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:
Och att skicka för många argument resulterar också i ett fel:
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: