将用户对socttemp表的所有操作过程记录到日志表中t_log??? t_loglogid number 自增长 username varchar2 当前数据库操作的用户名 logtime date 当前操作的数据库时间点
可以使用触发器来实现将用户对soctt.emp表的所有操作过程记录到日志表t_log中。
首先,创建一个日志表t_log,包含所需的字段:
CREATE TABLE t_log (
logid NUMBER PRIMARY KEY,
username VARCHAR2(100),
logtime DATE,
logdata VARCHAR2(1000)
);
然后,创建一个触发器,在用户对soctt.emp表进行任何操作时触发,并将相关信息插入到t_log表中:
CREATE OR REPLACE TRIGGER trg_emp_log
AFTER INSERT OR UPDATE OR DELETE ON soctt.emp
FOR EACH ROW
DECLARE
v_username VARCHAR2(100);
BEGIN
-- 获取当前数据库操作的用户名
SELECT USER INTO v_username FROM DUAL;
-- 插入操作信息到日志表
INSERT INTO t_log (logid, username, logtime, logdata)
VALUES (NULL, v_username, SYSDATE, :NEW.empno || ';' || :NEW.ename || ';' || :NEW.job || ';' || :NEW.mgr || ';' || :NEW.hiredate || ';' || :NEW.sal || ';' || :NEW.comm || ';' || :NEW.deptno);
END;
/
这样,当用户对soctt.emp表进行插入、更新或删除操作时,相关信息会被记录到t_log表中
原文地址: https://www.cveoy.top/t/topic/hJ22 著作权归作者所有。请勿转载和采集!