In Oracle, de NLS_LOWER()
functie retourneert zijn argument met alle letters in kleine letters.
Het is vergelijkbaar met de LOWER()
functie, behalve dat het een tweede argument accepteert waarmee u de sortering kunt specificeren. De sortering behandelt speciale taalkundige vereisten voor het omzetten van hoofdletters.
Syntaxis
De syntaxis gaat als volgt:
NLS_LOWER(char [, 'nlsparam' ])
Waarbeide char
en 'nlsparam'
kan van elk gegevenstype zijn CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, of NCLOB
.
De 'nlsparam'
argument kan de volgende vorm hebben:
'NLS_SORT = sort'
Waar sort
is een benoemde collatie.
Als u dit argument weglaat, wordt de vastgestelde sortering van de functie gebruikt.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;
Resultaat:
RESULT ________________ homer symptom
Hetzelfde geldt wanneer het argument gemengde hoofdletters gebruikt:
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;
Resultaat:
RESULT ________________ homer symptom
En als het argument al kleine letters is, dan is het resultaat hetzelfde als de invoer:
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;
Resultaat:
RESULT ________________ homer symptom
Geef een sortering op
Hier is een voorbeeld dat laat zien hoe het specificeren van een sortering de resultaten kan veranderen:
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Resultaat:
R1 R2 ________ ________ baliq balıq
Merk op dat de tweede kolom een kleine letter zonder punten gebruikt i
karakter, dat voldoet aan het Azerbeidzjaanse schriftsysteem.
Merk op dat NLS_SORT
overschrijft de sortering van het eerste argument alleen op het moment van uitvoering. Daarom retourneert de volgende instructie de sortering van het eerste argument, niet het tweede:
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;
Resultaat:
COLLATION _________________ USING_NLS_COMP
Het onderwerp van sorteringen kan behoorlijk complex zijn. Zie bijlage C in de Oracle Database Globalization Support Guide voor de regels voor het bepalen van sorteringen en regels voor het afleiden van sorteringen voor deze functie.
Null-waarden
Doorgeven van null
retourneert null
:
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL;
Resultaat:
R1 R2 R3 _______ _______ _______ null null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null
treedt op als resultaat van een SQL SELECT
uitspraak.
U kunt echter SET NULL
. gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Onjuist aantal argumenten
Aanroepen van NLS_LOWER()
zonder het doorgeven van argumenten geeft een fout:
SELECT NLS_LOWER()
FROM DUAL;
Resultaat:
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:
En het doorgeven van te veel argumenten resulteert in een fout:
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;
Resultaat:
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: