捕获ora-报警的trigger

上一篇 / 下一篇  2007-12-20 12:03:03 / 个人分类:oracle

1、建表用来存储捕获的信息
create table ora_error ( msg varchar2(4000) ) tablespace tools;
2、捕获报警的trigger
create or replace trigger grab_info
after servererror on database
declare
  l_sql_text ora_name_list_t;
  l_n        number;
begin
  if ( is_servererror(1652) )
  then
      insert into ora_error values ( 'ora_sysevent = ' || ora_sysevent );
      insert into ora_error values ( 'ora_login_user = ' || ora_login_user );
      insert into ora_error values ( 'ora_server_error = ' || ora_server_error(1) );
      l_n := ora_sql_txt( l_sql_text );
      for i in 1 .. l_n
      loop
          insert into ora_error values ( 'l_sql_text(' || i || ') = ' || l_sql_text(i) );
      end loop;
  end if;
end;
/
根据不同的ora-报警,只需修改is_servererror中的数字即可。

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-09  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 3575
  • 日志数: 68
  • 建立时间: 2007-12-19
  • 更新时间: 2009-01-09

RSS订阅

Open Toolbar