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

Funkce NLS_CHARSET_NAME() v Oracle

V databázi Oracle je to NLS_CHARSET_NAME() Funkce vrací název znakové sady dané znakové sady na základě jejího ID. Předáte ID znakové sady jako argument a funkce vrátí její název.

Syntaxe

Syntaxe vypadá takto:

NLS_CHARSET_NAME(number)

Kde number je ID znakové sady, pro kterou chcete vrátit jméno.

Příklad

Zde je základní příklad:

SELECT NLS_CHARSET_NAME(1)
FROM DUAL;

Výsledek:

US7ASCII

Zde je s jiným ID znakové sady:

SELECT NLS_CHARSET_NAME(871)
FROM DUAL;

Výsledek:

UTF8

Nulový argument

Pokud je argument null , výsledkem je null :

SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
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.

Neplatné ID znakové sady

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

SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;

Výsledek:

null

Předání nesprávného datového typu však vrátí chybu:

SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL
Error report -
ORA-01722: invalid number

Nesprávný počet argumentů

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

SELECT NLS_CHARSET_NAME()
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_NAME()
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:

Ale předání více ID znakové sady má za následek návrat názvu první znakové sady:

SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;

Výsledek:

UTF8

  1. MySQL:jak získat rozdíl mezi dvěma časovými razítky v sekundách

  2. MariaDB SESSION_USER() Vysvětleno

  3. Simulovat VYTVOŘIT DATABÁZI, POKUD NEEXISTUJE pro PostgreSQL?

  4. Oracle:LONG nebo CLOB?