sql >> Databáze >  >> RDS >> Oracle

COLLATION() Funkce v Oracle

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_CS 

Nulový argument

Porovnání je vráceno, i když předáte null :

SELECT COLLATION(null)FROM DUAL; 

Výsledek:

USING_NLS_COMP

Nesprá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:

  1. Jaký je maximální počet povolených parametrů na typ poskytovatele databáze?

  2. Jak vytvořit ADDM úlohu a zkontrolovat její sestavu

  3. MySQL:Vyberte náhodný záznam, ale váhu vůči určitým záznamům

  4. Jak získat aktuální hodnotu věštecké sekvence bez jejího zvýšení?