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