Comment gérer les exceptions sql

Lorsqu'on essaie de déterminer la source d'une erreur SQL et SQLSTATE indique une condition d'exception en maintenant une valeur autre que 00000, 00001, ou 00002, vous pouvez gérer la situation dans l'une des façons suivantes:

  • Le contrôle à la procédure de parent qui a appelé la sous-procédure qui a soulevé l'exception retourner.

  • Utiliser un CHAQUE FOIS clause de branche pour une routine de gestion des exceptions ou d'effectuer une autre action.




  • Gérer l'exception sur la place avec un composé Instruction SQL. Une déclaration composé SQL se compose d'une ou plusieurs instructions SQL simples, pris en sandwich entre COMMENCER et FIN mots-clés.

Ce qui suit est un exemple d'un gestionnaire d'exception composé de présentation:

BEGINDECLARE ValueOutOfRange EXCEPTION POUR SQLSTATE'73003 '-INSERER dans les aliments (calories) VALUES (: cal) -Signal ValueOutOfRange -message' un nouveau processus de calories value.'EXCEPTIONWHEN ValueOutOfRange THENMESSAGE 'Manipulation de l'erreur de gamme de calories »-Lorsque AUTRES THENRESIGNAL -END

Par un ou plusieurs DECLARE déclarations, vous pouvez donner des noms aux spécifique SQLSTATE valeurs que vous soupçonnez peuvent survenir. La INSERT déclaration est celui qui pourrait provoquer une exception se produise. Si la valeur de : cal est supérieure à la valeur maximale pour une SMALLINT élément de données, SQLSTATE est réglé sur “ 73003 ”. La SIGNAL déclaration signale une condition d'exception. Il dégage le haut zone de diagnostic.

Il définit la RETURNED_SQLSTATE domaine de la zone de diagnostic à la SQLSTATE pour l'exception du nom. Si aucune exception a eu lieu, la série d'états représenté par la MESSAGE 'un nouveau processus de valeur calorique » instruction est exécutée. Cependant, si une exception se produit, que série d'instructions est ignorée, et le EXCEPTION instruction est exécutée.

Si l'exception était une ValueOutOfRange exception, puis une série d'états représentés par la MESSAGE 'Manipulation de l'erreur de gamme de calories » instruction est exécutée. La RESIGNAL instruction est exécutée si l'exception est pas un ValueOutOfRange exception.

RESIGNAL passe simplement le contrôle de l'exécution de la procédure de parent appelant. Cette procédure peut avoir un code supplémentaire de gestion des erreurs pour faire face à d'autres exceptions que l'erreur attendue valeur-out-of-gamme.


» » » » Comment gérer les exceptions sql