环境:AIX5.3 Oracle 9.2.0.7
需求功能:对某表做Trigger以记录详细的DML操作
在Oracle 9.2.0.4中有使用ora_sql_txt这个事件得到SQL,但在Oracle 9.2.0.7中无法使用,各位有没有一些替代方案。
附:
Oracle 9.2.04中的Trigger
create or replace trigger trigger_Table_dml
after delete or insert or update on Table
declare
n int;
v_type Table_log.dml_type%type;
sql_text ora_name_list_t;
stmt VARCHAR2(2000);
begin
n:=ora_sql_txt(sql_text);
FOR i IN 1 .. n LOOP
stmt := stmt || sql_text(i);
END LOOP;
if inserting then
v_type:='insert';
elsif updating then
v_type:='update';
elsif deleting then
v_type:='delete';
end if;
insert into Table_log(USERNAME,CLIENT_IP,DML_TYPE,DML_DATE,sql_text) values(user,sys_context('userenv','ip_address'),v_type,TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss'),stmt);
end;
查看全部回复
我也来说两句
