Rechercher Articles Oracle SQL sur ce Site.
Loading
Comment gérer les erreurs dans un bloc PL/SQL ?
Avec la gestion des EXCEPTIONS. Les erreurs d’exécutions dans un bloc PL/SQL peuvent être multiples (erreurs
système, erreurs Oracle, erreurs de codage, dépassement de limite,...)
PL/SQL a un mécanisme de gestion des erreurs qui permet de traiter ces évènements dans le BLOC EXCEPTION.
|
EXCEPTIONS |
ERROR_ORA |
SQLCODE |
Description |
| ACCESS_INTO_NULL | ORA-06530 | -6530 | Un programme tente d'attribuer des valeurs aux attributs d'un objet non initialisé |
| CASE_NOT_FOUND | ORA-06592 | -6592 | Aucun des choix dans les clauses WHEN d'une instruction CASE est sélectionné, et il n'ya pas de clause ELSE |
| COLLECTION_IS_NULL | ORA-06531 | -6531 | Un programme tente d'appliquer les méthodes de collecte autres que celle qui existe à une table imbriquée non initialisée ou VARRAY, ou le programme tente d'attribuer des valeurs aux éléments d'une table imbriquée non initialisée ou VARRAY. |
| CURSOR_ALREADY_OPEN | ORA-06511 | -6511 | Un programme tente d'ouvrir un curseur déjà ouvert. Un curseur doit être fermé avant d'être rouvert. Une boucle de curseur FOR ouvre automatiquement le curseur sur laquelle il se réfère, afin que votre programme ne peut pas ouvrir ce curseur à l'intérieur de la boucle. |
| DUP_VAL_ON_INDEX | ORA-00001 | -1 | Un programme tente de stocker des valeurs en double dans une colonne qui est contraint par un index unique. |
| INVALID_CURSOR | ORA-01001 | -1001 | Un programme tente une opération de curseur qui n'est pas autorisé, comme la fermeture d'un curseur non ouvert. |
| INVALID_NUMBER | ORA-01722 | -1722 | Dans une instruction SQL, la conversion d'une chaîne de caractères en un nombre échoue parce que la chaîne ne représente pas un nombre valide. (Dans les déclarations de procédure, VALUE_ERROR est soulevée.) Cette exception est également soulevée lorsque l'expression LIMIT-clause dans un communiqué en vrac FETCH n'évalue pas à un nombre positif. |
| LOGIN_DENIED | ORA-01017 | -1017 | Un programme tente de se connecter à Oracle avec un nom d'utilisateur ou mot de passe invalide |
| NO_DATA_FOUND | ORA-01403 | 100 | Une instruction SELECT INTO ne renvoie aucune ligne, ou vos références programme un élément supprimé dans une table imbriquée ou un élément non initialisée dans un index par table |
| NOT_LOGGED_ON | ORA-01012 | -1012 | Un programme lance un appel à la base de données sans être connecté à Oracle |
| PROGRAM_ERROR | ORA-06501 | -6501 | PL / SQL à un problème interne |
| ROWTYPE_MISMATCH | ORA-06504 | -6504 | La variable de curseur d'accueil et PL / SQL variable de curseur impliqués dans une mission ont des types de retour incompatibles. Quand une variable hôte ouvert le curseur est passé à une procédure stockée sous-programme, les types de retour des paramètres réels et formels doivent être compatibles |
| SELF_IS_NULL | ORA-30625 | -30625 | Un programme tente d'appeler une méthode membre, mais l'instance du type d'objet n'a pas été initialisé. Le haut-paramètre AUTO points à l'objet, et est toujours le premier paramètre passé à une méthode MEMBRES |
| STORAGE_ERROR | ORA-06500 | -6500 | PL / SQL est à court de mémoire ou la mémoire a été endommagée. |
| SUBSCRIPT_BEYOND_COUNT | ORA-06533 | -6533 | Un programme de références d'une table imbriquée ou VARRAY élément utilise un numéro d'index plus grand que le nombre d'éléments dans la collection |
| SUBSCRIPT_OUTSIDE_LIMIT | ORA-06532 | -6532 | Un programme de références d'une table imbriquée ou VARRAY élément utilise un numéro d'index (-1 par exemple) qui est en dehors de l'intervalle légal |
| SYS_INVALID_ROWID | ORA-01410 | -1410 | La conversion d'une chaîne de caractères dans un rowid universel échoue parce que la chaîne de caractères ne représente pas un rowid valide |
| TIMEOUT_ON_RESOURCE | ORA-00051 | -51 | TIMEOUT car Oracle est en attente d'une ressource |
| TOO_MANY_ROWS | ORA-01422 | -1422 | Un SELECT INTO retourne plus d'une ligne |
| VALUE_ERROR | ORA-06502 | -6502 | Une opération arithmétique, de conversion, de truncate, ou d'une erreur de taille de contrainte se produit. Par exemple, lorsque votre programme sélectionne une valeur de colonne dans une variable de caractères, si la valeur est supérieure à la longueur déclarée de la variable, PL / SQL annule la cession et soulève VALUE_ERROR. Dans des déclarations de procédure, VALUE_ERROR est levée si la conversion d'une chaîne de caractères en un nombre échoue. (Dans une requête SQL, INVALID_NUMBER est levée.) |
| ZERO_DIVIDE | ORA-01476 | -1476 | Un programme tente de diviser un nombre par zéro |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Oracle PL-SQL Structure d'un BLOC • Oracle PL-SQL SELECT INTO • Oracle PL-SQL Variables %TYPE %ROWTYPE |