V databázi Oracle je to NLS_COLLATION_NAME()
funkce vrací název daného kolace na základě jeho ID. Při volání funkce předáte ID kolace a ta vrátí název kolace.
Syntaxe
Syntaxe vypadá takto:
NLS_COLLATION_NAME(expr [, flag ])
Kde expr
je ID řazení typu NUMBER
.
flag
argument je volitelný argument, který se vztahuje pouze na kolace Unicode Collation Algorithm (UCA). Určuje, zda má funkce vrátit krátký nebo dlouhý tvar názvu řazení.
flag
argument může být jeden z následujících:
Příznak | Popis |
---|---|
'S' nebo 's' | Vrátí krátký tvar názvu kolace. |
'L' nebo 'l' | Vrátí dlouhý tvar názvu řazení. |
Výchozí hodnota tohoto příznaku je 'L'
.
Příklad
Zde je základní příklad:
SELECT NLS_COLLATION_NAME(70)
FROM DUAL;
Výsledek:
XAZERBAIJANI
Zde je několik dalších příkladů:
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;
Výsledek:
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Příznak dlouhé/krátké formy
Jak již bylo zmíněno, můžeme předat volitelný příznak, který určí, zda má být vrácena krátká nebo dlouhá forma názvu řazení.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;
Výsledek:
Dlouhé Krátké __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_62TH_MN UAI>Výchozí hodnota tohoto příznaku je
'L'
. Pokud tedy vynecháme příznak, vrátí se dlouhý tvar:SELECT NLS_COLLATION_NAME(208920) AS "Default" FROM DUAL;
Výsledek:
Výchozí __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MNTento příznak se však vztahuje pouze na kolace podle Unicode Collation Algorithm (UCA).
Pokud použijeme příznak na řazení bez UCA, nevidíme žádný rozdíl:
SELECT NLS_COLLATION_NAME(4112, 'L') AS "1", NLS_COLLATION_NAME(4112, 'S') AS "2" FROM DUAL;
Výsledek:
1 2 ___________ ___________ FRENCH_M FRENCH_MNeplatné řazení
Předání neplatného názvu řazení má za následek
null
:SET NULL 'null'; SELECT NLS_COLLATION_NAME(4113) FROM DUAL;
Výsledek:
nullVe výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když
null
dochází v důsledku SQLSELECT
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ězecnull
by měl být vrácen.Nulový argument
Předávání
null
vrátínull
:SET NULL 'null'; SELECT NLS_COLLATION_NAME(null) FROM DUAL;
Výsledek:
nullNesprávný počet argumentů
Volání funkce bez předání jakýchkoli argumentů má za následek chybu:
SELECT NLS_COLLATION_NAME() FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT NLS_COLLATION_NAME()FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00938:nedostatek argumentů pro funkci00938. 00000 - "nedostatek argumentů pro funkci"*Příčina:*Akce:A předání příliš mnoha argumentů také vede k chybě:
SELECT NLS_COLLATION_NAME(4112, 'S', 'L') FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT NLS_COLLATION_NAME(4112, 'S', 'L')FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00939:příliš mnoho argumentů pro funkci00939. 00000 - "příliš mnoho argumentů pro funkci"*Příčina:*Akce: