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: