W bazie danych Oracle NLS_COLLATION_NAME() funkcja zwraca nazwę podanego zestawienia na podstawie jego identyfikatora. Podczas wywoływania funkcji przekazujesz identyfikator sortowania, który zwraca nazwę sortowania.
Składnia
Składnia wygląda tak:
NLS_COLLATION_NAME(expr [, flag ])
Gdzie expr to identyfikator sortowania typu NUMBER .
flag argument jest argumentem opcjonalnym, który ma zastosowanie tylko do sortowania Algorytm sortowania Unicode (UCA). Określa, czy funkcja powinna zwrócić krótką czy długą formę nazwy sortowania.
flag argument może być jednym z następujących:
| Flaga | Opis |
|---|---|
'S' lub 's' | Zwraca krótką formę nazwy sortowania. |
'L' lub 'l' | Zwraca długą formę nazwy sortowania. |
Domyślna wartość tej flagi to 'L' .
Przykład
Oto podstawowy przykład:
SELECT NLS_COLLATION_NAME(70)
FROM DUAL; Wynik:
XAZERBAIJANI
Oto kilka przykładów:
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL; Wynik:
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Flaga długa/krótka
Jak wspomniano, możemy przekazać opcjonalną flagę, aby określić, czy zwrócić krótką lub długą formę nazwy sortowania.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL; Wynik:
Long Short __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN UCA0620_THAI
Domyślna wartość tej flagi to 'L' . Więc jeśli pominiemy flagę, zwracana jest długa forma:
SELECT
NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL; Wynik:
Default __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN
Ta flaga dotyczy jednak tylko sortowania Unicode Collation Algorithm (UCA).
Jeśli zastosujemy flagę do sortowania innego niż UCA, nie widzimy różnicy:
SELECT
NLS_COLLATION_NAME(4112, 'L') AS "1",
NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL; Wynik:
1 2 ___________ ___________ FRENCH_M FRENCH_M
Nieprawidłowe sortowanie
Przekazanie nieprawidłowej nazwy sortowania skutkuje null :
SET NULL 'null';
SELECT NLS_COLLATION_NAME(4113)
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_NAME(null)
FROM DUAL; Wynik:
null
Nieprawidłowa liczba argumentów
Wywołanie funkcji bez przekazywania jakichkolwiek argumentów skutkuje błędem:
SELECT NLS_COLLATION_NAME()
FROM DUAL; Wynik:
Error starting at line : 1 in command - SELECT NLS_COLLATION_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:
Przekazywanie zbyt wielu argumentów również skutkuje błędem:
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL; Wynik:
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME(4112, 'S', 'L') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: