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

Funkce NLS_COLLATION_NAME() v Oracle

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_MN 

Tento 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_M 

Neplatné ř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:

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_NAME(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_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:

  1. Připojte se k serveru MySQL přes SSH v PHP

  2. Příklady ADDTIME() – MySQL

  3. Použití databáze Oracle s CakePHP 2.0

  4. Podporuje váš ovladač ODBC zdroje uživatelských dat?