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