在存储例程里  将查询的结果存入一张新表
for  loop
 insert intovalues
 end loop
commit;exception
  when others then
rollback;
--在异常这怎么产生日志信息啊

解决方案 »

  1.   

    n你要什么样子的日志信息?直接异常抛出?
    这样
    exception
      when others then
    begin
    rollback;
    raise;
    end;
      

  2.   

    --
    for loop
     insert intovalues
     end loop
    commit;exception
      when others then
      insert into ...
    rollback;
    -- 在 exception 异常处理块中来个插入操作,将相关的异常信息插入到日志表!
      

  3.   

    楼主的意思是否是说,异常的场合,自己定义的log表插入记录?
    可以两种办法1:先rollback,然后插入log表,再commit
    2:建一个子事务的procedure,处理log表的插入(这个方法常使用)
      

  4.   


    嗯 基本上是这个意思 我没用过log表 不知大侠能否给个  感激不尽
      

  5.   

    log表也就是普通表,字段可以是日期时间、用户、出错程序、出错代码、出错原因及其他需要记录的信息,也可以记录到日志文件中,不过放在表中更方便。
      

  6.   

    给你个例子,ERRLOG表序号 字段名称 字段描述 类型 长度 允许空 缺省值
    1 SERIALKEY NUMBER 22
    2 WHSEID NVARCHAR2 60 √ USER
    3 LOGDATE DATE         7 SYS_EXTRACT_UTC(SYSTIMESTAMP)
    4 USERID NVARCHAR2 60 USER
    5 ERRORID NUMBER         10,0
    6 SYSTEMSTATE NVARCHAR2 36 √
    7 MODULE NVARCHAR2 500 √
    8 ADDDATE DATE         7 SYS_EXTRACT_UTC(SYSTIMESTAMP)
    9 ADDWHO NVARCHAR2 60 USER
    10 EDITDATE DATE         7 SYS_EXTRACT_UTC(SYSTIMESTAMP)
    11 EDITWHO NVARCHAR2 60 USER
    12 ERRORTEXT NVARCHAR2 4000