我想在触发器里面记录DELETE记录的账号 该怎样实现呢
解决方案 »
- linux下安装11g发行版出现“无法创建目录”异常
- oracle查询时日期的问题
- 两个游标循环问题
- ip地址改动后,怎样启动dbconsole,有什么好办法,试了几个方法都不行。100分急求。
- 如何使一个字段的值在每插入一条记录后自动加1啊?
- 新手上路:Oracle中数据一致性的维护是怎样做的?(问题太笼统,详细情况请进来看,谢谢)
- 那位大虾使用过oracle备份帮手,能告诉我备份出来的数据怎么恢复么?
- 在Oracle如何实现类似以下的更新
- <感谢>为什么不能su切换oracle用户安装数据库?
- 求大神 解决一个oracle中case when的问题
- Oracle 多数据库连接
- top 5 等待事件中 出现 cr request retry 事件,什么意思啊?
刚做了个INSERT的例子 不过没成功 发现个问题
--SCOTT 窗口
SQL> create table t1(id number);Table created.SQL> create table t2(name varchar2(20));Table created.
SQL> create table t1(id number);Table created.SQL> create table t2(name varchar2(20));Table created.
--SYS窗口
C:\Documents and Settings\Admin>sqlplus "/ as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on Thu Nov 26 22:53:22 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining optionsSQL> select * from scott.t1;no rows selectedSQL> select * from scott.t1; ID
----------
1SQL> insert into scott.t1 values(2);1 row created.
SQL> select * from scott.t2;NAME
--------------------
SCOTT
SCOTT --这里不行 因为插入的仍然是SCOTT用户马上熄灯了
先MARK一下
明天再来看看
create or replace trigger tri_log
after update or delete on log不同的数据库账号删除和更新记录的时候我都需要记录进审计表
说穿了就是要在触发器里提取删除和更新记录的账号
--test账户下
[TEST@ora10gr1#2009-11-27/21:59:11] SQL>create table delete_log(user_name varchar(30),date_time date);Table created.[TEST@ora10gr1#2009-11-27/21:59:12] SQL>create table log(id int);Table created.[TEST@ora10gr1#2009-11-27/21:59:12] SQL>create public synonym log for log;Synonym created.[TEST@ora10gr1#2009-11-27/21:59:12] SQL>
[TEST@ora10gr1#2009-11-27/21:59:12] SQL>create or replace trigger trigger_log
2 before delete on log
3 declare
4 pragma autonomous_transaction;
5 begin
6 insert into delete_log values(user,sysdate);
7 commit;
8 end;
9 /Trigger created.[TEST@ora10gr1#2009-11-27/21:59:12] SQL>
[TEST@ora10gr1#2009-11-27/21:59:12] SQL>delete from log;0 rows deleted.[TEST@ora10gr1#2009-11-27/21:59:12] SQL>select * from delete_log;USER_NAME DATE_TIME
------------------------------ -------------------
TEST 2009-11-27/21:59:12--另外一个账户下(sys)
[SYS@ora10gr1#2009-11-27/22:00:08] SQL>delete from log;0 rows deleted.[SYS@ora10gr1#2009-11-27/22:00:08] SQL>select * from test.delete_log;USER_NAME DATE_TIME
------------------------------ -------------------
SYS 2009-11-27/22:00:08
TEST 2009-11-27/21:59:12
情况就是这样,自己根据需要再扩充内容吧。。