Я хотел бы использовать подпрограмму ASSERT, функционально похожую на ту, которая есть в других языках, то есть конструкцию (будь то процедура, синтаксис ...)
ASSERT( <condition>, <msg>)
так что, когда <condition>
переданный в первом аргументе является ложным, возникает исключительная ситуация с указанным <msg>
описательным сообщением.
Я знаю, что это тривиально сделать вручную, но я спрашиваю, есть ли стандартный, поставляемый с СУБД.
Необходимость написать свой собственный или импортировать один из сторонних пакетов будет непрактичной, поскольку мне нужно, чтобы он был полностью переносимым и прозрачным для каждого проекта, над которым я работаю.
oracle
error-handling
user881430
источник
источник
Ответы:
В SQL или PL / SQL нет встроенной процедуры подтверждения, поэтому вам придется написать свою собственную.
Есть два способа сделать это. Вы можете либо вручную вызвать исключение, как описано в этой статье Oracle , либо написать оболочку для
raise_application_error
процедуры, которая описана в разделе документации Oracle по обработке исключений .Я добавлю, что исключения были разработаны для такого сценария, поэтому вам лучше снять шляпу программиста на секунду и использовать шляпу DBA :)
источник
Встроенный пакет DBMS_ASSERT - это версия того, что вы ищете. Для других утверждений Фил верен, вам придется строить свои собственные. Вот простая демонстрация второго варианта в ответе Фила +1 :
источник