Fonction Oracle NVL

Fonction Oracle Nvl



Une valeur nulle est un champ qui a été laissé vide ou qui n'a pas de valeur assignée.

Les valeurs NULL sont courantes dans les bases de données, en particulier lors de l'importation de données externes. Par conséquent, à moins qu'une colonne ne contienne une contrainte pour empêcher les valeurs NULL, le moteur de base de données utilisera probablement une valeur NULL pour une valeur manquante.







Bien que les valeurs NULL soient courantes, elles peuvent entraîner des problèmes de base de données car la base de données n'a aucune valeur avec laquelle travailler. Il est donc recommandé d'appliquer des actions pour gérer les valeurs NULL dans vos requêtes.



Dans cet article, nous apprendrons comment convertir les valeurs NULL dans une table donnée pour contenir une valeur par défaut moins susceptible de provoquer des erreurs de fonctionnement dans votre base de données.



Fonction Oracle NVL

Comme mentionné, cette fonction nous permet de remplacer les valeurs NULL par des valeurs plus significatives. La syntaxe de la fonction est fournie ci-dessous :





NVL ( expr1, expr2 ) ;

La fonction accepte deux arguments principaux :

expr1 et expr2 – ce paramètre définit la valeur à tester pour les valeurs NULL. Si la valeur de expr1 est NULL, la fonction renverra la valeur de expr2.



Les deux expressions peuvent avoir des types de données similaires ou différents. Si les types de données correspondants diffèrent, le moteur de base de données peut effectuer une conversion implicite pour permettre la compatibilité avec les types de données. S'il est impossible de convertir les types de données correspondants, le moteur de base de données génère une erreur.

Exemple d'utilisation de la fonction Oracle NVL()

L'exemple suivant illustre l'utilisation de base de la fonction NVL() :

Exemple 1

Considérez l'exemple suivant :

sélectionner niveau ( 'salut' , 'monde' ) du double ;

Dans l'exemple précédent, nous utilisons la fonction NVL() pour tester si la chaîne 'hello' est une valeur NULL. Comme la valeur fournie n'est pas nulle, la fonction renverra la chaîne 'bonjour'.

Exemple 2

Considérez le deuxième exemple ci-dessous :

sélectionner niveau ( nul, 'monde' ) du double ;

Dans ce cas, étant donné que la première expression est une valeur NULL, la requête renverra la deuxième chaîne comme indiqué ci-dessous :

Exemple 3

Nous pouvons également utiliser la fonction NVL() pour remplacer les valeurs NULl dans une table de base de données. Considérez le tableau des employés ci-dessous :

sélectionner FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT de EMPLOYEES emp ;

Tableau résultant :

Comme nous pouvons le voir, la colonne commission_pct contient des valeurs NULl. Nous pouvons créer une requête pour remplacer les valeurs NULL de la colonne commission_pct par 0, comme illustré dans l'exemple ci-dessous :

sélectionner FIRST_NAME, LAST_NAME, EMAIL, SALAIRE, nvl ( COMMISSION_PCT, 0 )
des EMPLOYÉS emp;

Dans l'exemple de requête précédent, nous utilisons la fonction NVL() pour tester la valeur dans la colonne commission_pct pour les valeurs NULL. S'il y a une valeur NULL, nous renvoyons 0. Sinon, nous renvoyons la valeur d'origine.

Cela devrait nous permettre de remplacer les valeurs NULL dans la colonne par 0, comme indiqué dans le tableau résultant ci-dessous :

Nous pouvons l'utiliser avec une instruction UPDATE ou stocker la valeur résultante dans une vue de table.

Conclusion

Dans ce didacticiel, vous avez appris à utiliser la fonction Oracle NVL() pour remplacer les valeurs NULL par des valeurs par défaut. Il est bon de garder à l'esprit que bien que la fonction NVL() ressemble étroitement à la fonction COALESCE(), la fonction NVL() ne peut renvoyer qu'une seule valeur. En même temps, la fonction coalesce() peut renvoyer plusieurs valeurs.

Si vous cherchez une fonction qui peut prendre plus de deux arguments sans utiliser la fonction coalesce(), considérez la fonction NVL2().