急 谢谢大家

解决方案 »

  1.   

    是编译时,还是执行时?如果是编译时的错误,SQL*PLUS下面会有提示。如果是执行时的,俺就不懂了。
      

  2.   

    SQL> declare
      2   a number;
      3  begin
      4   a:='a';
      5   insert into a values a;
      6  end;
      7  /
     
    declare
     a number;
    begin
     a:='a';
     insert into a values a;
    end;
     
    ORA-06550: line 6, column 23:
    PL/SQL: ORA-00904: "A": invalid identifier
    ORA-06550: line 6, column 2:
    PL/SQL: SQL Statement ignored显示存储过程中的错误:SQL> show errors procedure imp_ut;
    Errors for PROCEDURE LPPMTEST.IMP_UT:
     
    LINE/COL ERROR
    -------- -----------------------------------------------
    15/10    PL/SQL: ORA-00942: table or view does not exist
    4/3      PL/SQL: SQL Statement ignored
    23/12    PL/SQL: ORA-00942: table or view does not exist
    21/3     PL/SQL: SQL Statement ignored
      

  3.   

    我想写一个存储错误信息的存储过程错误信息不用说了
    err_num := sqlcode;
    err_msg := substr(sqlerrm, 1000);但是怎么能取得发生错误的位置也也就是错误的行号  
      

  4.   

    这个貌似没听说过...
    我一般都是在每个SQL执行前把这个SQL的功能描述赋给一个变量...
    然后把这个变量和错误信息一起输出...
    查日志就知道是哪句SQL出错了.
      

  5.   

    如果是在sqlplus 下首先要執行set serveroutput on然後用show error就會顯示錯誤 否則不會提示錯誤
      

  6.   

    先在SQLServer中试试看,方法都差不多吧