IF @@ERROR <> 0 GOTO ProcError
我在SQL Server中具有上面的代码。我找不到与@@ Error对应的oracle。
如何实现?
答案 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功能。