环境: oracle 10g r2
用户通过某程序发一条SQL指令 insert into t1(XX,XX) values(XX,xx)....
现在我在t1上建立了一个触发器trigger
要求在该trigger内捕捉该SQL语句即,insert t1(XX,XX) values(XX,xx).... 另在oracle10gr2的版本的dml的trigger中,ora_sql_txt(sql_text)貌似已经不能用了。
知道csdn的高人多,请救命啊,在线等。
用户通过某程序发一条SQL指令 insert into t1(XX,XX) values(XX,xx)....
现在我在t1上建立了一个触发器trigger
要求在该trigger内捕捉该SQL语句即,insert t1(XX,XX) values(XX,xx).... 另在oracle10gr2的版本的dml的trigger中,ora_sql_txt(sql_text)貌似已经不能用了。
知道csdn的高人多,请救命啊,在线等。
你可以从v$sqltext中取啊?SQL> create table test(aaa number,bbb number);表已创建。SQL> create table test2(aaa varchar2(4000));表已创建。SQL> create or replace trigger tr_get_dml
2 after insert on test
3 declare
4 v_sid number;
5 v_sql varchar2(4000);
6 begin
7 select sql_text into v_sql
8 from v$sqlarea
9 where sql_id=(select sql_id from v$session
10 where audsid=userenv('sessionid'));
11 insert into test2 values(v_sql);
12 end;
13 /触发器已创建SQL> select * from test;未选定行SQL> select * from test2;未选定行SQL> insert into test values(1,2);已创建 1 行。SQL> select * from test2;AAA
-----------------------------insert into test values(1,2)SQL> commit;提交完成。SQL> select * from test2;AAA
-----------------------------insert into test values(1,2)SQL>