Poignée ORACLE Exceptions
Je besoin pour gérer le ORA-01400 erreur (impossible d'insérer la valeur NULL dans ("SCHÉMA"."TABLE_NAME"."COLUMN_NAME") ) à l'aide d'une exception de la poignée.
ORACLE Prédéfinir quelques Exceptions près comme (ACCESS_INTO_NULL, ZERO_DIVIDE et ainsi de suite), mais ne semble pas définir une Exception pour les ORA-01400 erreur, comment puis-je gérer ce code d'erreur particulier?
J'ai besoin de quelque chose comme ça (d'autres suggestions sont acceptées).
....
...
INSERT INTO MY_TABLE (CODE, NAME) VALUES (aCode,aName);
COMMIT;
EXCEPTION
WHEN NULL_VALUES THEN /* i don't know this value , exist?*/
Do_MyStuff();
WHEN OTHERS THEN
raise_application_error(SQLCODE,MY_OWN_FORMAT_EXCEPTION(SQLCODE,SQLERRM),TRUE);
END;
OriginalL'auteur RRUZ | 2009-12-29
Vous devez vous connecter pour publier un commentaire.
La pré-définis PL/SQL exceptions sont spécial à Oracle. Vous ne pouvez vraiment pas jouer avec ceux-ci. Quand vous voulez avoir un ensemble prédéfini exceptions de votre propre, vous ne pouvez pas déclarer "à l'échelle mondiale", comme le standard. Au lieu de cela, créer un exceptions paquet qui a tout de l'exception des déclarations et utilisez-la dans votre application code.
Exemple:
Maintenant faire usage de l'exception définie dans le package
Source: http://www.orafaq.com/wiki/Exception
OriginalL'auteur Adam Hawkes
Vous pouvez gérer exception par son code comme ceci:
OriginalL'auteur Egor Rogov
vous pouvez définir vos propres exceptions, comme les variables (elles ont la même portée que les autres variables de sorte que vous pouvez définir paquet d'exception, etc...):
créer un schéma de niveau de déclenchement, pour gérer cette exception personnalisée
Je ne comprends pas vraiment, vous pouvez utiliser cette exception avec n'IMPORTE quelle table. Si vous définissez dans un paquet d'en-tête, vous pouvez l'utiliser partout (i-e: il sera exactement comme un prédéfini oracle exception)
Je pense que la pièce manquante est d'examiner la SQLERRM pour trouver la table/colonne qui est à l'origine de l'exception.
Je ne suis pas intéressé dans la table/colonne qui cause l'exception, seulement j'ai besoin de gérer cette exception particulière comme ORACLE, avec les exceptions Prédéfinies.
OriginalL'auteur Vincent Malgrat
SQLERRM affiche le message d'erreur sql
http://www.psoug.org/reference/exception_handling.html
OriginalL'auteur Gerard Banasig