1使用包dbms_utility.format_error_backtrace查看具体的所在行
SQL> edi
已写入 file afiedt.buf
1 declare
2 v_sql varchar2(1000);
3 begin
4 v_sql:='';
5 execute immediate v_sql;
6 exception
7 when others then
8 dbms_output.put_line(dbms_utility.format_error_backtrace);
9* end;
SQL> /
PL/SQL 过程已成功完成。
SQL> set serveroutput on
SQL> /
ORA-06512: 在 line 5
PL/SQL 过程已成功完成。
--不调用dbms_utility.format_error_backtrace直接显示的
SQL> edi
已写入 file afiedt.buf
1 declare
2 v_sql varchar2(1000);
3 begin
4 v_sql:='';
5 execute immediate v_sql;
6* end;
SQL> /
declare
*
第 1 行出现错误:
ORA-06535: EXECUTE IMMEDIATE 中的语句字符串为 NULL 或长度为零
ORA-06512: 在 line 5