ORACLE触发器 我想建一个ORACLE触发器跟踪数据表的插入和更新过程,跟踪是哪个用户/会话/IP或是机器执行的,但不知道怎么写,请大家帮忙!比如 table1 字段为FIELD1 从N更新为D 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://wallimn.javaeye.com/blog/688123这里有关于审计的介绍 你看下吧 我不太懂ORACLE,看不懂,不会写,有没有人帮忙给写一个? http://blog.csdn.net/xiaoshifeng/archive/2009/06/21/4286211.aspx create or replace trigger stu_audi after update or delete or insert on stu declare -- local variables here v_type varchar2(10);begin if updating then v_type := 'update'; elsif deleting then v_type := 'delete'; elsif inserting then v_type := 'insert'; end if; update statistics set transaction_user = user, transaction_date = sysdate where table_name = 'stu' and transaction_name = v_type; if SQL%notfound then insert into statistics values ('stu', v_type, user, sysdate); end if;end stu_audi;我用这个表:SQL> desc statistics 名称 是否为空? 类型 ----------------------------------------- -------- ------------- TABLE_NAME VARCHAR2(30) TRANSACTION_NAME VARCHAR2(10) TRANSACTION_USER VARCHAR2(10) TRANSACTION_DATE DATE来记录执行的操作SQL> select * from statistics;TABLE_NAME TRANSACTIO TRANSACTIO TRANSACTION_DA------------------------------ ---------- ---------- --------------stu insert HR 30-12月-10stu delete HR 30-12月-10不知道能不能满足你的要求 怎么修改上面的语句啊 Oracle导入字符集问题 请教简单的sql优化,在线等,马上结贴 oracle 用户角色问题 请教高人:一个奇怪的sql问题! 在linux下向oracle数据库中存中文字符的问题 请帮忙看看这两个query为啥返回结果不一样(outer join)? 求助:从Windows导入到Aix5.2 出现ORACLE 的 2437等错误 oracle sqlserver 请问这样的游标变量怎么用? 数据拼接和加工,200分求解决,在线等 用SPOOL导出数据的SQL中如何使用变量
这里有关于审计的介绍 你看下吧
after update or delete or insert on stu
declare
-- local variables here
v_type varchar2(10);
begin
if updating then
v_type := 'update';
elsif deleting then
v_type := 'delete';
elsif inserting then
v_type := 'insert';
end if;
update statistics
set transaction_user = user, transaction_date = sysdate
where table_name = 'stu'
and transaction_name = v_type;
if SQL%notfound then
insert into statistics values ('stu', v_type, user, sysdate);
end if;
end stu_audi;
我用这个表:
SQL> desc statistics
名称 是否为空? 类型
----------------------------------------- -------- ------------- TABLE_NAME VARCHAR2(30)
TRANSACTION_NAME VARCHAR2(10)
TRANSACTION_USER VARCHAR2(10)
TRANSACTION_DATE DATE来记录执行的操作
SQL> select * from statistics;TABLE_NAME TRANSACTIO TRANSACTIO TRANSACTION_DA
------------------------------ ---------- ---------- --------------
stu insert HR 30-12月-10
stu delete HR 30-12月-10
不知道能不能满足你的要求