Je voudrais utiliser une routine ASSERT fonctionnellement similaire à celle trouvée dans d'autres langages, c'est-à-dire une construction (que ce soit une procédure, une syntaxe ...)
ASSERT( <condition>, <msg>)
de telle sorte que lorsque le <condition>
passé dans le premier argument est faux, une exception est levée avec le <msg>
message descriptif spécifié .
Je sais que c'est trivial à faire à la main, mais je demande s'il y en a un standard fourni avec le SGBD.
Devoir écrire le mien ou en importer un à partir de packages tiers ne serait pas pratique, car j'aurais besoin qu'il soit complètement portable et transparent pour chaque projet sur lequel je travaille.
oracle
error-handling
user881430
la source
la source
Réponses:
Il n'y a pas de procédure d'assertion intégrée en SQL ou PL / SQL, vous devrez donc écrire la vôtre.
Il y a deux façons de procéder. Vous pouvez soit lever manuellement une exception, comme indiqué dans cet article Oracle , soit écrire un wrapper pour la
raise_application_error
procédure, qui est documenté dans la section Gestion des exceptions Oracle de la documentation.J'ajouterai que les exceptions ont été conçues pour ce type de scénario, il vaut donc mieux retirer votre chapeau de programmeur une seconde et utiliser votre chapeau DBA :)
la source
Le package DBMS_ASSERT intégré est une version à portée limitée de ce que vous recherchez. Pour les autres affirmations que Phil a raison, vous devrez créer le vôtre. Voici une démonstration simple de la deuxième option dans la réponse +1 de Phil :
la source