Oracle中如何定位报错的行


--Oracle中捕捉异常及异常发生的位置 可用于调试存储过程,尤其是很长的那种
DECLARE
  V_RATE NUMBER;--比例
  V_RETINFO VARCHAR2(2000);--异常信息
BEGIN
 
  SELECT 120/0 INTO V_RATE FROM DUAL;
 
  --异常处理
  EXCEPTION WHEN OTHERS THEN
  V_RETINFO := SQLERRM||CHR(10)||SUBSTR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,1,1000);--获取异常信息及异常被抛出的初始位置[行]
  DBMS_OUTPUT.PUT_LINE(V_RETINFO);
END;
在pl/sql developer 里运行上述代码,查看输出
 
ORA-01476: divisor is equal to zero
ORA-06512: at line 6

相关内容