oracle9i自动通过trigger捕获DML 语句 | |
|
另外:
ora_sql_txt是9i才支持的东西;那么8i下通过event trigger如何得到sql那
quote:
SQL> create or replace trigger snapshot_too_old
2 after servererror on database
declare
l_sql_text ora_name_list_t;
3 4 5 l_n number;
6 begin
7 if ( is_servererror(1555) )
8 then
9 insert into oerr_tri_tab values ( 'ora_sysevent = ' || ora_sysevent );
insert into oerr_tri_tab values ( 'ora_login_user = ' || ora_login_user );
10 11 insert into oerr_tri_tab values ( 'ora_server_error = ' || ora_server_error(1));
12 l_n := ora_sql_txt( l_sql_text );
13 for i in 1 .. l_n
loop
14 15 insert into oerr_tri_tab values ( 'l_sql_text(' || i || ') = ' || l_sql_text(i) );
16 end loop;
17 end if;
end; 18
19 /
Warning: Trigger created with compilation errors.
SQL> show errors
Errors for TRIGGER SNAPSHOT_TOO_OLD:
LINE/COL ERROR
-------- -----------------------------------------------------------------
10/12 PL/SQL: Statement ignored
10/19 PLS-00201: identifier 'ORA_SQL_TXT' must be declared
SQL> drop trigger snapshot_too_old;
Trigger dropped.
搜索了一下,ora_sql_txt 都是和9i相关的文档;看来8i不支持;
那么8i下,event trigger中如何得到触发trigger的SQL哪?