Oracle中@@ Error的等效项是什么

时间:2019-03-01 13:53:47

标签: oracle plsql exception-handling

IF @@ERROR <> 0 GOTO ProcError

我在SQL Server中具有上面的代码。我找不到与@@ Error对应的oracle。

如何实现?

2 个答案:

答案 0 :(得分:1)

我同意@Kfinity提供的异常处理程序来捕获SQL语句(或与此有关的PL / SQL语句)引发的错误。

了解PL / SQL中@@ Error的直接关联是SQLCODE可能也会有所帮助。如果非零(仅在异常处理程序中调用时为零),它将为您提供错误代码。如果为0,那么....没有错误!

答案 1 :(得分:0)

听起来您正在尝试进行错误处理。在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功能。