У нас есть сценарий, который развертывает код в нашей базе данных как часть развертывания нашего приложения. В настоящее время, если представление или пакет ошибаются, он игнорирует эту ошибку и переходит к следующему этапу. Мы хотим, чтобы в этот момент он завершился неудачно и вышел из sqlplus. Я нашел WHENEVER SQLERROR
оператор, но обнаружил, что он обрабатывает предупреждения как ошибки. Нам нужно, чтобы он продолжал выводить предупреждение, но не работал при ошибке. Это возможно?
Какая версия оракула? А не могли бы вы подробнее рассказать об обстоятельствах? В Oracle есть методы перехвата ошибок в блоке с помощью оператора «исключение», который позволяет фиксировать точный номер ошибки и выбирать действие. Если вы развертываете код, вероятно, можно будет вызвать задачу компиляции из исполнительного блока (alter ... compile) и перехватить любые ошибки и предупреждения. Извините за дубликат, я попытался удалить оригинал и не понял, что кто-то так быстро взглянул на него.