SQLERRM |
Message d'erreur SQL |
|---|---|
| Oracle Database SQL | Oracle 6 ou supérieure |
Syntaxe
| SQLERRM |
Description
Cette fonction retourne le dernier message d'erreur d'une requête SQL.
Remarques
- La fonction SQLERRM est souvent utilisée dans les blocs PL/SQL pour récupérer un message d'erreur humainement lisible associé au dernier code d'erreur SQL produit par une instruction. Elle est particulièrement utile dans les clauses EXCEPTION pour fournir plus de détails lors de la gestion des erreurs.
- Contrairement à SQLCODE, retournant uniquement le code numérique de l'erreur, SQLERRM retourne une description textuelle complète, permettant ainsi une meilleure compréhension de la cause du problème. Cette différence en fait un complément indispensable à l'utilisation de SQLCODE.
- Lorsqu'elle est appelée sans paramètre, SQLERRM retourne le message correspondant à l'erreur la plus récente rencontrée dans le bloc PL/SQL en cours d'exécution. Cela permet de connaître rapidement la nature exacte de l'erreur sans passer par de longues recherches.
- SQLERRM peut également être appelée avec un code d'erreur numérique en paramètre, afin de récupérer le message d'erreur correspondant à ce code spécifique, même s'il n'est pas le dernier généré. Cette possibilité facilite la documentation ou l'analyse d'erreurs connues.
- Si le code fourni en argument à SQLERRM ne correspond à aucune erreur connue, la fonction renvoie un message générique indiquant que l'erreur est non définie. Cela permet de détecter que l'on travaille sur un code non reconnu par Oracle.
- En l'absence d'erreur, l'appel à SQLERRM retourne généralement le message "ORA-0000: normal, successful completion", ce qui indique qu'aucune anomalie n'a été détectée dans l'exécution précédente.
- L'utilisation de SQLERRM dans les procédures et fonctions PL/SQL facilite grandement le journal de bord le debugging, car elle permet d'enregistrer automatiquement des messages d'erreur explicites dans des tables de suivi ou des journaux applicatifs.
- Dans un bloc EXCEPTION, il est courant d'associer SQLCODE et SQLERRM dans un même message pour avoir à la fois la valeur numérique et la description textuelle. Cela rend les rapports d'erreurs beaucoup plus clairs et complets.
- SQLERRM ne retourne que les messages associés aux erreurs standards d'Oracle ou à celles définies via RAISE_APPLICATION_ERROR, ce qui en fait un outil unifié pour la gestion des erreurs aussi bien système que personnalisées.
- Pour les erreurs définies par l'utilisateur avec RAISE_APPLICATION_ERROR, SQLERRM inclut le texte personnalisé fourni lors de l'appel, permettant ainsi de communiquer des messages précis adaptés au contexte métier.
- L'appel à SQLERRM doit se faire le plus tôt possible après la détection d'une erreur, car dans certains cas, l'exécution d'instructions intermédiaires peut écraser la dernière erreur enregistrée, ce qui fausserait le message retourné.
- SQLERRM est disponible depuis Oracle Database 6, ce qui en fait une des fonctions historiques de gestion des erreurs. Sa compatibilité à long terme garantit que les programmes PL/SQL utilisant cette fonction restent opérationnels sur plusieurs générations de bases de données Oracle.
Voir également
Langage de programmation - Oracle Database SQL - Références des codes d'erreur
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015