我们常常在ORACLE的存储过程中这样处理错误:
DECLARE
v_ErrorNo number(10);
v_ErrorMsg varchar2(255);
BEGIN
--Some SQL Here
EXCEPTION
WHEN OTHERS THEN
v_ErrorNo := SQLCODE;
v_ErrorMsg := SQLERRM;
ROLLBACK;
RETURN;
END;
虽然WHEN OTHERS THEN能够接收所有的错误,但是我们怎么知道是什么原因导致了错误吗?SQLCODE和SQLERRM这两个系统变量提供了最近一次错误的错误代码和错误描述。这样,调试的时候就能够更快地定位错误的原因。
DECLARE
v_ErrorNo number(10);
v_ErrorMsg varchar2(255);
BEGIN
--Some SQL Here
EXCEPTION
WHEN OTHERS THEN
v_ErrorNo := SQLCODE;
v_ErrorMsg := SQLERRM;
ROLLBACK;
RETURN;
END;
虽然WHEN OTHERS THEN能够接收所有的错误,但是我们怎么知道是什么原因导致了错误吗?SQLCODE和SQLERRM这两个系统变量提供了最近一次错误的错误代码和错误描述。这样,调试的时候就能够更快地定位错误的原因。