-- 找到啦,用format_error_backtrace() 可以取到。 那位高人再看看有什么问题。 begin -- ABCD dbms_output.put_line('hello 1'); declare i number := 0; vc varchar2(10); begin -- COMMENT 1 vc := 'abc'; i := TO_NUMBER(vc); exception when others then BEGIN dbms_output.put_line('--------------->>----'); dbms_output.put_line(dbms_utility.format_error_backtrace()); dbms_output.put_line('---------------<<----'); RAISE; END; end; return 1; exception when others then begin dbms_output.put_line(dbms_utility.format_error_backtrace()); return 1; end; end;
你用的PL/SQL的話,就用TEST測試一下啊!
2楼地回答:
你用的PL/SQL的話,就用TEST測試一下啊!
--------------------
什么意思,具体怎么操作?
那位高人再看看有什么问题。 begin
-- ABCD
dbms_output.put_line('hello 1'); declare
i number := 0;
vc varchar2(10);
begin
-- COMMENT 1
vc := 'abc';
i := TO_NUMBER(vc);
exception
when others then
BEGIN
dbms_output.put_line('--------------->>----');
dbms_output.put_line(dbms_utility.format_error_backtrace());
dbms_output.put_line('---------------<<----');
RAISE;
END; end;
return 1;
exception
when others then
begin
dbms_output.put_line(dbms_utility.format_error_backtrace());
return 1;
end; end;
最好的方法是利用日志,中间设置变量task_pos,没做一个步骤前task_pos := 1,2,3......
然后抛异常时记录task_pos,那就知道那个位置抛异常了。得要个写日志的记录过程。