W bazie danych Oracle NLS_COLLATION_ID()
funkcja zwraca identyfikator podanego zestawienia. Podajesz nazwę sortowania podczas wywoływania funkcji, a zwraca ona identyfikator sortowania.
Składnia
Składnia wygląda tak:
NLS_COLLATION_ID(expr)
Gdzie expr
jest nazwą sortowania typu VARCHAR2
.
Przykład
Oto podstawowy przykład:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;
Wynik:
70
Oto kilka przykładów:
SELECT
NLS_COLLATION_ID('UCA0620_THAI') AS "1",
NLS_COLLATION_ID('UCA0620_TSPANISH') AS "2",
NLS_COLLATION_ID('CANADIAN_M') AS "3",
NLS_COLLATION_ID('FRENCH_M') AS "4"
FROM DUAL;
Wynik:
1 2 3 4 _________ _________ _______ _______ 208920 208917 4116 4112
Nieprawidłowe sortowanie
Przekazanie nieprawidłowej nazwy sortowania skutkuje null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
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ć.
Argument zerowy
Przekazywanie null
zwraca null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;
Wynik:
null
Nieprawidłowa liczba argumentów
Wywołanie funkcji bez przekazywania jakichkolwiek argumentów skutkuje błędem:
SELECT NLS_COLLATION_ID()
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID() 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:
Przekazywanie zbyt wielu argumentów również skutkuje błędem:
SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M') 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: