新建窗口,输入以下内容运行
注意:需要新建表error_tab用于存放错误SQL语句
create or replace trigger error_trigger
after servererror on database
declare
n number;
full_text varchar2(4000);
sql_text ora_name_list_t;
d_current_nr_error number := ora_server_error(1);
ora_server_error_msg varchar2(100);
date1 date;
begin
n := ora_sql_txt(sql_text);
ora_server_error_msg := SQLERRM(-d_current_nr_error);
FOR i IN 1 .. n LOOP
full_text := full_text || sql_text(i);
END LOOP;
insert into error_tab
values
(user, d_current_nr_error, ora_server_error_msg, full_text,sysdate);
end;