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

Funkce NLS_CHARSET_ID() v Oracle

V Oracle NLS_CHARSET_ID() Funkce vrací ID číslo znakové sady dané znakové sady. Název znakové sady předáte jako argument a ten vrátí své ID.

Syntaxe

Syntaxe vypadá takto:

NLS_CHARSET_ID(string)

Kde string je název znakové sady, pro kterou chcete vrátit ID.

Příklad

Zde je základní příklad:

SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;

Výsledek:

2000

Zde je s jinou znakovou sadou:

SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;

Výsledek:

871

Nulový argument

Pokud je argument null , výsledkem je null :

SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;

Výsledek:

   NLS_CHARSET_ID(NULL) 
_______________________ 
                   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.

Neplatné názvy znakových sad

Předání neplatného názvu znakové sady má za následek null :

SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;

Výsledek:

   NLS_CHARSET_ID('OOPS') 
_________________________ 
                     null 

Nesprávný počet argumentů

Volání funkce bez předání jakýchkoli argumentů má za následek chybu:

SELECT NLS_CHARSET_ID()
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_ID()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

Předání více názvů znakových sad však způsobí, že se vrátí ID první znakové sady:

SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;

Výsledek:

871

  1. Smyčka SQL Server – jak mohu procházet sadou záznamů

  2. Používejte relační databáze MySQL na Ubuntu 10.04 LTS (Lucid)

  3. Jak povolit/zakázat omezení CHECK v SQLite

  4. Oracle Shutdown error ORA-01033