W Oracle NLS_CHARSET_ID()
funkcja zwraca numer identyfikacyjny zestawu znaków danego zestawu znaków. Podajesz nazwę zestawu znaków jako argument, a on zwraca jego identyfikator.
Składnia
Składnia wygląda tak:
NLS_CHARSET_ID(string)
Gdzie string
to nazwa zestawu znaków, dla którego chcesz zwrócić identyfikator.
Przykład
Oto podstawowy przykład:
SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;
Wynik:
2000
Tutaj jest z innym zestawem znaków:
SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;
Wynik:
871
Argument zerowy
Jeśli argumentem jest null
, wynik to null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;
Wynik:
NLS_CHARSET_ID(NULL) _______________________ null
Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null
występuje w wyniku polecenia SQL SELECT
oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Nieprawidłowe nazwy zestawów znaków
Przekazanie nieprawidłowej nazwy zestawu znaków skutkuje null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;
Wynik:
NLS_CHARSET_ID('OOPS') _________________________ null
Nieprawidłowa liczba argumentów
Wywołanie funkcji bez przekazywania jakichkolwiek argumentów skutkuje błędem:
SELECT NLS_CHARSET_ID()
FROM DUAL;
Wynik:
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:
Jednak przekazanie wielu nazw zestawów znaków powoduje zwrócenie identyfikatora pierwszego z nich:
SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;
Wynik:
871