Что эквивалентно для @@ Error в Oracle - PullRequest
0 голосов
/ 01 марта 2019
IF @@ERROR <> 0 GOTO ProcError

У меня есть вышеуказанный код в SQL Server. Я не могу найти эквивалент оракула для @@ Error.

Как этого достичь?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Я согласен с предложением @ Kfinity обработчика исключений для отлова ошибки, вызванной оператором SQL (или оператором PL / SQL в этом отношении).

Также может быть полезно знать, что прямая корреляция@@ Ошибка в PL / SQL - это SQLCODE.Если он не равен нулю (что происходит только при вызове из обработчика исключений), он выдает код ошибки.Если 0, ну тогда .... без ошибок!

0 голосов
/ 01 марта 2019

Похоже, вы пытаетесь обработать ошибки.В PL / SQL это обычно выглядит следующим образом:

BEGIN
  ...do something...
EXCEPTION WHEN NO_DATA_FOUND THEN -- check for a specific exception
  DBMS_OUTPUT.put_line('No data found exception caught');
WHEN OTHERS THEN -- catch any exception
  DBMS_OUTPUT.put_line('Unexpected error');
  DBMS_OUTPUT.put_line (DBMS_UTILITY.format_error_backtrace); 
  RAISE; -- re-raise the exception after logging it
END;

Вы можете сделать это для всего блока PL / SQL, с которым вы сейчас работаете (функция, процедура и т. Д.), Или вы можете заключить в оболочкуодин оператор в анонимном блоке PL / SQL с обработчиком исключений, если вам нужна дополнительная функциональность TRY..CATCH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...