I Oracle er NLS_LOWER()
funktion returnerer sit argument med alle bogstaver med små bogstaver.
Det ligner LOWER()
funktion, bortset fra at den accepterer et andet argument, der giver dig mulighed for at angive sorteringen. Samlingen håndterer særlige sproglige krav til sagskonverteringer.
Syntaks
Syntaksen ser sådan ud:
NLS_LOWER(char [, 'nlsparam' ])
Hvor både char
og 'nlsparam'
kan være af enhver af datatyperne CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
eller NCLOB
.
'nlsparam'
argument kan have følgende form:
'NLS_SORT = sort'
Hvor sort
er en navngivet kollation.
Hvis du udelader dette argument, bruges den bestemte sammenstilling af funktionen.
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;
Resultat:
RESULT ________________ homer symptom
Det samme gælder, når argumentet bruger blandet store og små bogstaver:
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;
Resultat:
RESULT ________________ homer symptom
Og hvis argumentet allerede er små bogstaver, så er resultatet det samme som inputtet:
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;
Resultat:
RESULT ________________ homer symptom
Angiv en sortering
Her er et eksempel, der viser, hvordan angivelse af en sortering kan ændre resultaterne:
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Resultat:
R1 R2 ________ ________ baliq balıq
Bemærk, at den anden kolonne bruger en prikfri lille i
karakter, som overholder det aserbajdsjanske skriftsystem.
Bemærk, at NLS_SORT
tilsidesætter sammenstillingen af det første argument kun på tidspunktet for udførelsen. Derfor returnerer følgende sætning sammenstillingen af det første argument, ikke det andet:
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;
Resultat:
COLLATION _________________ USING_NLS_COMP
Emnet for sammenstillinger kan være ret komplekst. Se appendiks C i Oracle Database Globalization Support Guide for reglerne for sorteringsbestemmelse og regler for udledning af sortering for denne funktion.
Nul-værdier
Sender null
returnerer null
:
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL;
Resultat:
R1 R2 R3 _______ _______ _______ null null null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Forkert antal argumenter
Kalder NLS_LOWER()
uden at sende nogen argumenter returnerer en fejl:
SELECT NLS_LOWER()
FROM DUAL;
Resultat:
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:
Og at sende for mange argumenter resulterer i en fejl:
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;
Resultat:
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: