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