V databázi Oracle NLS_COLLATION_ID()
funkce vrací ID daného kolace. Při volání funkce předáte název řazení a vrátí ID řazení.
Syntaxe
Syntaxe vypadá takto:
NLS_COLLATION_ID(expr)
Kde expr
je název řazení typu VARCHAR2
.
Příklad
Zde je základní příklad:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;
Výsledek:
70
Zde je několik dalších příkladů:
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;
Výsledek:
1 2 3 4 _________ _________ _______ _______ 208920 208917 4116 4112
Neplatné řazení
Předání neplatného názvu řazení má za následek null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
FROM DUAL;
Výsledek:
null
Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když null
dochází v důsledku SQL SELECT
prohlášení.
Můžete však použít SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null
by měl být vrácen.
Nulový argument
Předávání null
vrátí null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;
Výsledek:
null
Nesprávný počet argumentů
Volání funkce bez předání jakýchkoli argumentů má za následek chybu:
SELECT NLS_COLLATION_ID()
FROM DUAL;
Výsledek:
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:
A předání příliš mnoha argumentů také vede k chybě:
SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
FROM DUAL;
Výsledek:
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: