In Oracle der NLS_LOWER()
Die Funktion gibt ihr Argument mit allen Buchstaben in Kleinbuchstaben zurück.
Es ähnelt dem LOWER()
-Funktion, außer dass sie ein zweites Argument akzeptiert, mit dem Sie die Sortierung angeben können. Die Sortierung behandelt spezielle sprachliche Anforderungen für Fallumwandlungen.
Syntax
Die Syntax lautet wie folgt:
NLS_LOWER(char [, 'nlsparam' ])
Wobei sowohl char
und 'nlsparam'
kann einen der Datentypen CHAR
haben , VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, oder NCLOB
.
Der 'nlsparam'
Argument kann die folgende Form haben:
'NLS_SORT = sort'
Wobei sort
ist eine benannte Sortierung.
Wenn Sie dieses Argument weglassen, wird die ermittelte Sortierung der Funktion verwendet.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;
Ergebnis:
RESULT ________________ homer symptom
Dasselbe gilt, wenn das Argument gemischte Groß-/Kleinschreibung verwendet:
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;
Ergebnis:
RESULT ________________ homer symptom
Und wenn das Argument bereits Kleinbuchstaben ist, dann ist das Ergebnis dasselbe wie die Eingabe:
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;
Ergebnis:
RESULT ________________ homer symptom
Geben Sie eine Sortierung an
Hier ist ein Beispiel, das zeigt, wie die Angabe einer Sortierung die Ergebnisse verändern kann:
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Ergebnis:
R1 R2 ________ ________ baliq balıq
Beachten Sie, dass die zweite Spalte einen punktlosen Kleinbuchstaben i
verwendet Zeichen, das dem aserbaidschanischen Schriftsystem entspricht.
Beachten Sie, dass NLS_SORT
überschreibt die Sortierung des ersten Arguments nur zum Zeitpunkt der Ausführung. Daher gibt die folgende Anweisung die Sortierung des ersten Arguments zurück, nicht des zweiten:
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;
Ergebnis:
COLLATION _________________ USING_NLS_COMP
Das Thema Collations kann recht komplex sein. Siehe Anhang C im Oracle Database Globalization Support Guide für die Sortierungsbestimmungsregeln und Sortierungsableitungsregeln für diese Funktion.
Nullwerte
Übergabe von null
gibt null
zurück :
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL;
Ergebnis:
R1 R2 R3 _______ _______ _______ null null 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.
Falsche Argumentanzahl
Aufruf von NLS_LOWER()
ohne Übergabe von Argumenten gibt einen Fehler zurück:
SELECT NLS_LOWER()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT NLS_LOWER() 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 zu einem Fehler:
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom') FROM DUAL Error at Command Line : 1 Column : 54 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: