V databázi Oracle je to COLLATION()
funkce vrací název odvozeného řazení pro svůj argument.
Syntaxe
Syntaxe vypadá takto:
COLLATION(výraz)
Kde výraz
musí být vyhodnocen jako znakový řetězec typu CHAR
, VARCHAR2
, DLOUHÉ
, NCHAR
nebo NVARCHAR2
.
Příklad
Zde je základní příklad:
SELECT COLLATION('Boat')FROM DUAL;
Výsledek:
USING_NLS_COMP
Příklad s COLLATE
Ustanovení
Zde je to, co se stane, když použijeme COLLATE
klauzule pro explicitní určení řazení:
SELECT COLLATION('Boat' COLLATE LATIN_AI) FROM DUAL;
Výsledek:
LATIN_AI
Úvaha při používání NLS_SORT
COLLATION()
funkce vrací pouze řazení vázané na data, nikoli dynamické řazení nastavené parametrem NLS_SORT
parametr.
Příklad:
SELECT COLLATION('Boat' COLLATE USING_NLS_SORT) FROM DUAL;
Výsledek:
USING_NLS_SORT
Můžete použít SYS_CONTEXT()
funkce vrátí hodnotu NLS_SORT
parametr:
SELECT SYS_CONTEXT('USERENV','NLS_SORT')FROM DUAL;
Výsledek:
BINÁRNÍ
Jakákoli přípona, například _CI
, _AI
a _CS
je vráceno:
SELECT COLLATION('Loď' COLLATE USING_NLS_SORT_CI) JAKO "_CI", COLLATION('Loď COLLATE USING_NLS_SORT_CS) JAKO "_CS", COLLATION('Loď' COLLATE USING_NLS_SORT_AI) JAKO "_AI"FROM DUAL;
Výsledek:
_CI _CS _AI ____________________ ____________________ _____________________ USING_NLS_SORT_CI USING_NLS_SORT_CS pre AIING USING_NLS_SORT_CSNulový argument
Porovnání je vráceno, i když předáte
null
:SELECT COLLATION(null)FROM DUAL;
Výsledek:
USING_NLS_COMPNesprávný počet argumentů
Volání funkce bez předání jakýchkoli argumentů má za následek chybu:
SELECT COLLATION()FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT COLLATION()FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce:A předání příliš mnoha argumentů také vede k chybě:
SELECT COLLATION('Boat', 'Dang')FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT COLLATION('Boat', 'Dang')FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce: