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: