In der Oracle-Datenbank der NLS_COLLATION_NAME()
Die Funktion gibt den Namen einer bestimmten Sortierung basierend auf ihrer ID zurück. Sie übergeben die Sortierungs-ID beim Aufrufen der Funktion und sie gibt den Sortierungsnamen zurück.
Syntax
Die Syntax lautet wie folgt:
NLS_COLLATION_NAME(expr [, flag ])
Wobei expr
ist die Sortierungs-ID vom Typ NUMBER
.
Das flag
Argument ist ein optionales Argument, das nur für Kollatierungen des Unicode Collation Algorithm (UCA) gilt. Sie bestimmt, ob die Funktion die Kurzform oder die Langform des Sortierungsnamens zurückgeben soll.
Das flag
Das Argument kann eines der folgenden sein:
Flag | Beschreibung |
---|---|
'S' oder 's' | Gibt die Kurzform des Sortierungsnamens zurück. |
'L' oder 'l' | Gibt die Langform des Sortierungsnamens zurück. |
Der Standardwert für dieses Flag ist 'L'
.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT NLS_COLLATION_NAME(70)
FROM DUAL;
Ergebnis:
XAZERBAIJANI
Hier sind einige weitere Beispiele:
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;
Ergebnis:
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Lang-/Kurzform-Flag
Wie bereits erwähnt, können wir ein optionales Flag übergeben, um zu bestimmen, ob die Kurzform oder die Langform des Sortierungsnamens zurückgegeben werden soll.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;
Ergebnis:
Long Short __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN UCA0620_THAI
Der Standardwert für dieses Flag ist 'L'
. Wenn wir also das Flag weglassen, wird die Langform zurückgegeben:
SELECT
NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL;
Ergebnis:
Default __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN
Dieses Flag gilt jedoch nur für Unicode Collation Algorithm (UCA)-Sortierungen.
Wenn wir das Flag auf eine Nicht-UCA-Sortierung anwenden, sehen wir keinen Unterschied:
SELECT
NLS_COLLATION_NAME(4112, 'L') AS "1",
NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL;
Ergebnis:
1 2 ___________ ___________ FRENCH_M FRENCH_M
Ungültige Sortierung
Das Übergeben eines ungültigen Sortierungsnamens führt zu null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(4113)
FROM DUAL;
Ergebnis:
null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Null-Argument
Übergabe von null
gibt null
zurück :
SET NULL 'null';
SELECT NLS_COLLATION_NAME(null)
FROM DUAL;
Ergebnis:
null
Falsche Argumentanzahl
Der Aufruf der Funktion ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT NLS_COLLATION_NAME()
FROM DUAL;
Ergebnis:
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:
Und das Übergeben zu vieler Argumente führt ebenfalls zu einem Fehler:
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL;
Ergebnis:
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: