Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction NLS_LOWER() dans Oracle

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' ])

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'

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: