sql >> Database >  >> RDS >> Oracle

NLS_LOWER() Functie in Oracle

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:

  1. SQL Server-fout 113:eindcommentaar '*/' ontbreekt

  2. Hoe weet ik wanneer mijn docker mysql-container actief is en mysql klaar is om vragen te beantwoorden?

  3. Een nummer "unhexen" in MySQL

  4. Tijdelijke oplossing voor ORA-00997:illegaal gebruik van LONG datatype