V Oracle NLS_CHARSET_DECL_LEN()
funkce vrací délku deklarace (v počtu znaků) NCHAR
sloupec.
Syntaxe
Syntaxe vypadá takto:
NLS_CHARSET_DECL_LEN(byte_count, char_set_id)
Kde byte_count
je šířka sloupce a char_set_id
je ID znakové sady sloupce.
Příklad
Zde je základní příklad:
SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;
Výsledek:
100
Zde je s jiným ID znakové sady:
SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;
Výsledek:
50
Získejte ID znakové sady
Můžeme použít NLS_CHARSET_ID()
funkce pro vrácení ID znakové sady pro danou znakovou sadu:
Příklad:
SELECT NLS_CHARSET_DECL_LEN(
100,
NLS_CHARSET_ID('AL16UTF16')
)
FROM DUAL;
Výsledek:
50
Nulový argument
Pokud je některý argument null
, výsledkem je null
:
SET NULL 'null';
SELECT
NLS_CHARSET_DECL_LEN(null, 1) AS r1,
NLS_CHARSET_DECL_LEN(100, null) AS r2
FROM DUAL;
Výsledek:
R1 R2 _______ _______ 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.
Nesprávný počet argumentů
Volání funkce bez předání jakýchkoli argumentů má za následek chybu:
SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;
Výsledek:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
A předání příliš mnoha argumentů také vede k chybě:
SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL;
Výsledek:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN(100, 1, 2) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: