In Oracle, de NLS_UPPER() functie retourneert zijn argument met alle letters in hoofdletters.
Het is vergelijkbaar met de UPPER() 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_UPPER(char [, 'nlsparam' ])
Waar beide 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_UPPER('coffee time') AS Result
FROM DUAL; Resultaat:
RESULT ______________ COFFEE TIME
Hetzelfde geldt wanneer het argument gemengde hoofdletters gebruikt:
SELECT NLS_UPPER('Coffee Time') AS Result
FROM DUAL; Resultaat:
RESULT ______________ COFFEE TIME
En als het argument al in hoofdletters is, dan is het resultaat hetzelfde als de invoer:
SELECT NLS_UPPER('COFFEE TIME') AS Result
FROM DUAL; Resultaat:
RESULT ______________ COFFEE TIME
Geef een sortering op
Hier is een voorbeeld dat laat zien hoe het specificeren van een sortering de resultaten kan veranderen:
SELECT
NLS_UPPER('fasilə') AS r1,
NLS_UPPER('fasilə', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL; Resultaat:
R1 R2 _________ _________ FASILƏ FASİLƏ
Merk op dat de tweede kolom een gestippelde hoofdletter 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_UPPER('fasilə', '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_UPPER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_UPPER('fasilə', null) AS r2,
NLS_UPPER(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_UPPER() zonder het doorgeven van argumenten geeft een fout:
SELECT NLS_UPPER()
FROM DUAL; Resultaat:
Error starting at line : 1 in command - SELECT NLS_UPPER() 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_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time')
FROM DUAL; Resultaat:
Error starting at line : 1 in command -
SELECT NLS_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time')
FROM DUAL
Error at Command Line : 1 Column : 55
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 - "too many arguments for function"
*Cause:
*Action: