tb_name="tableA"if inserting then
.....
(字段从select * from user_segment where segment_name=:tb_name得到,自己扩展)
(记录在new中)
elseif updateing then
........................
else
..
end if
.....
(字段从select * from user_segment where segment_name=:tb_name得到,自己扩展)
(记录在new中)
elseif updateing then
........................
else
..
end if
解决方案 »
- 请问oracle官网的oracle安装程序有没有限制
- 请问,在ORACLE中,如何将中文格式的日期,转成英文格式的?
- 分数不多,但是值得大家进来讨论
- SQL语句实现 like一个集合
- 求一条SQL语句
- 简单的删除更新问题,谢谢!
- Windows XP professional版下安装oracle9i,可以启动OracleOraHome90ManagementServer么
- oracle中的表名不能用数字开头,我怎么解决?
- SELECT * from jm WHERE jmcsny=TO_DATE( '1978-03-01','YYYY-MM-DD')哪里有错?再线等待
- Oracle
- 请问哪里有对数据库设计性能对比的资料?
- 关于还原ORACLE的问题
create table emp_tab
(empno number(4),
ename varchar2(10),
job varchar2(10),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(4))
/
insert into emp_tab values
(7369,'MIKE','CLERK',7902,'17-12月-80',1200,null,20)
/
--创建存储修改日志的表
CREATE TABLE Audit_table (
Seq NUMBER,
User_at VARCHAR2(20),
Time_now DATE,
Term VARCHAR2(20),
Job VARCHAR2(20),
Proc VARCHAR2(20),
enum NUMBER)
/
CREATE SEQUENCE Audit_seq
/
--创建存储前后更新值的表
CREATE TABLE Audit_table_values
(Seq NUMBER,
Dept NUMBER,
Dept1 NUMBER,
Dept2 NUMBER)
/
--创建触发器
CREATE OR REPLACE TRIGGER Audit_trig
AFTER INSERT OR UPDATE OR DELETE ON Emp_tab
FOR EACH ROW
DECLARE
Time_now DATE;
Terminal CHAR(20);
BEGIN
--get current time, and the terminal(终端) of the user:
Time_now := SYSDATE;
Terminal := USERENV('TERMINAL');
--record new employee primary key
IF INSERTING THEN --记录对emp_tab的插入操作
INSERT INTO Audit_table VALUES(Audit_seq.NEXTVAL,User,Time_now,
Terminal,'Emp_tab', 'INSERT',:new.Empno);
--record primary key of the deleted row:
ELSIF DELETING THEN --记录对emp_tab的删除操作
INSERT INTO Audit_table VALUES(Audit_seq.NEXTVAL,User,Time_now,
Terminal,'Emp_tab','DELETE',:old.Empno);
--for updates, record the primary key of the row being updated:
ELSE --记录对emp_tab的修改操作
INSERT INTO Audit_table VALUES (audit_seq.NEXTVAL, User, Time_now,
Terminal,'Emp_tab','UPDATE',:old.Empno);
--and for SAL and DEPTNO, record old and new values:
IF UPDATING('SAL') THEN --记录对emp_tab表SAL列修改前后值
INSERT INTO Audit_table_values
VALUES (Audit_seq.CURRVAL, 'SAL',:old.Sal, :new.Sal);
ELSIF UPDATING('DEPTNO') THEN --记录对emp_tab表DEPTNO列修改前后值
INSERT INTO Audit_table_values VALUES (Audit_seq.CURRVAL, 'DEPTNO',
:old.Deptno, :new.DEPTNO);
END IF;
END IF;
END;
/
感觉上不是很难的,只是我刚接触这个东西,有些东西还不知道
三楼的是不是太复杂了点
试了一下二楼的没成功;继续探索ING