Dans Oracle, le NLS_LOWER()
la fonction renvoie son argument avec toutes les lettres en minuscules.
C'est similaire au LOWER()
fonction, sauf qu'elle accepte un deuxième argument qui vous permet de spécifier le classement. Le classement gère les exigences linguistiques spéciales pour les conversions de casse.
Syntaxe
La syntaxe ressemble à ceci :
NLS_LOWER(char [, 'nlsparam' ])
Où les deux char
et 'nlsparam'
peut être de n'importe quel type de données CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, ou NCLOB
.
Le 'nlsparam'
l'argument peut avoir la forme suivante :
'NLS_SORT = sort'
Où sort
est une collation nommée.
Si vous omettez cet argument, le classement déterminé de la fonction est utilisé.
Exemple
Voici un exemple simple pour illustrer :
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;
Résultat :
RESULT ________________ homer symptom
Il en va de même lorsque l'argument utilise une casse mixte :
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;
Résultat :
RESULT ________________ homer symptom
Et si l'argument est déjà en minuscule, alors le résultat est le même que l'entrée :
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;
Résultat :
RESULT ________________ homer symptom
Spécifier un classement
Voici un exemple qui montre comment la spécification d'un classement peut modifier les résultats :
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Résultat :
R1 R2 ________ ________ baliq balıq
Notez que la deuxième colonne utilise un i
minuscule sans point caractère, qui adhère au système d'écriture azerbaïdjanais.
Notez que NLS_SORT
remplace le classement du premier argument uniquement au moment de l'exécution. Par conséquent, l'instruction suivante renvoie la collation du premier argument, pas du second :
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;
Résultat :
COLLATION _________________ USING_NLS_COMP
Le sujet des collations peut être assez complexe. Reportez-vous à l'annexe C du manuel Oracle Database Globalization Support Guide pour connaître les règles de détermination du classement et les règles de dérivation du classement pour cette fonction.
Valeurs nulles
Passer null
renvoie null
:
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL;
Résultat :
R1 R2 R3 _______ _______ _______ null null null
Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null
se produit à la suite d'un SQL SELECT
déclaration.
Cependant, vous pouvez utiliser SET NULL
pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null
doit être retourné.
Nombre d'arguments incorrects
Appel de NLS_LOWER()
sans passer d'argument renvoie une erreur :
SELECT NLS_LOWER()
FROM DUAL;
Résultat :
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:
Et passer trop d'arguments entraîne une erreur :
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;
Résultat :
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: