oracle,pl/sql中,问题例如下面的形式: begin 
  ....-- 
  ....     ¦ 
  ....     ¦   ⇒代码段 
  ....     ¦ 
  ....-- 
EXECPTION 
  【想在这个知道是哪一行代码抛出的异常】 
END

解决方案 »

  1.   

    具體說不好啊!
    你用的PL/SQL的話,就用TEST測試一下啊!
      

  2.   

    这个要求有点高,第一次听说,汗,在.net,java,delphi里面好像也没有类似的
      

  3.   


    2楼地回答:
    你用的PL/SQL的話,就用TEST測試一下啊!
    --------------------
     什么意思,具体怎么操作?
      

  4.   

    用pl/sql developer的test功能,出错堆栈会告诉你是哪一行出错了
      

  5.   

    -- 找到啦,用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;
      

  6.   

    正常都是通过自定义异常来处理的,如jackietsen,要知道哪一行ORACLE本身会报错误。
      

  7.   

    用test可以看到报错在哪。
    最好的方法是利用日志,中间设置变量task_pos,没做一个步骤前task_pos := 1,2,3......
    然后抛异常时记录task_pos,那就知道那个位置抛异常了。得要个写日志的记录过程。