可以通过触发器来实现将用户对 soctt.emp 表的所有操作记录到日志表 t_log 中。以下是一个示例的触发器代码:\n\nsql\nCREATE OR REPLACE TRIGGER log_emp_changes\nAFTER INSERT OR UPDATE OR DELETE ON scott.emp\nFOR EACH ROW\nDECLARE\n v_username VARCHAR2(30);\n v_logtime DATE;\n v_logdata VARCHAR2(100);\nBEGIN\n -- 获取当前数据库操作的用户名\n SELECT USER INTO v_username FROM DUAL;\n \n -- 获取当前操作的数据库时间点\n v_logtime := SYSDATE;\n \n -- 构建当前操作的数据组合字符串\n IF INSERTING THEN\n v_logdata := 'INSERT - ' || :NEW.empno || ', ' || :NEW.ename || ', ' || :NEW.job;\n ELSIF UPDATING THEN\n v_logdata := 'UPDATE - ' || :OLD.empno || ', ' || :OLD.ename || ', ' || :OLD.job;\n ELSIF DELETING THEN\n v_logdata := 'DELETE - ' || :OLD.empno || ', ' || :OLD.ename || ', ' || :OLD.job;\n END IF;\n \n -- 插入记录到日志表 t_log\n INSERT INTO t_log (logid, username, logtime, logdata)\n VALUES (NULL, v_username, v_logtime, v_logdata);\nEND;\n/\n\n\n以上代码创建了一个名为 log_emp_changes 的触发器,它会在每次对 scott.emp 表进行插入、更新或删除操作之后触发。在触发器中,我们获取当前数据库操作的用户名、当前操作的数据库时间点,并根据不同的操作类型构建相应的数据组合字符串。然后,将这些信息插入到日志表 t_log 中。需要根据实际情况调整日志表 t_log 的字段和数据类型。

Oracle 触发器记录 Scott.emp 表操作日志

原文地址: https://www.cveoy.top/t/topic/pta6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录