W bazie danych Oracle NLS_CHARSET_NAME()
funkcja zwraca nazwę zestawu znaków danego zestawu znaków na podstawie jego identyfikatora. Podajesz identyfikator zestawu znaków jako argument, a funkcja zwraca jego nazwę.
Składnia
Składnia wygląda tak:
NLS_CHARSET_NAME(number)
Gdzie number
to identyfikator zestawu znaków, dla którego chcesz zwrócić nazwę.
Przykład
Oto podstawowy przykład:
SELECT NLS_CHARSET_NAME(1)
FROM DUAL;
Wynik:
US7ASCII
Tutaj jest z innym identyfikatorem zestawu znaków:
SELECT NLS_CHARSET_NAME(871)
FROM DUAL;
Wynik:
UTF8
Argument zerowy
Jeśli argumentem jest null
, wynik to null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
FROM DUAL;
Wynik:
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łowy identyfikator zestawu znaków
Przekazanie nieprawidłowego identyfikatora zestawu znaków skutkuje null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;
Wynik:
null
Jednak przekazanie niewłaściwego typu danych zwraca błąd:
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT NLS_CHARSET_NAME('oops') FROM DUAL Error report - ORA-01722: invalid number
Nieprawidłowa liczba argumentów
Wywołanie funkcji bez przekazywania jakichkolwiek argumentów skutkuje błędem:
SELECT NLS_CHARSET_NAME()
FROM DUAL;
Wynik:
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:
Jednak przekazanie wielu identyfikatorów zestawów znaków powoduje zwrócenie nazwy pierwszego z nich:
SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;
Wynik:
UTF8