我有一个项目用于我的某个类。我们需要在两个表格进行更改时创建日志:insert/update/delete。我们被要求使用Oracle触发器和PL-SQL。在日志文件中,我们需要记录用户ID,日期时间,IP地址和事件(插入/更新/删除)。我知道如何设置触发器,但我遇到的主要问题是UserID(从用户名登录到Users表中登录到PHP站点),更重要的是IPAddress。这是我到目前为止。在Oracle中使用触发器将更改记录到表中
CREATE OR REPLACE TRIGGER tr_movie_ai
AFTER INSERT OR UPDATE OR DELETE
ON Movies
FOR EACH ROW
DECLARE
v_username VARCHAR(20);
v_ipaddress VARCHAR(13);
v_date NUMBER := FLOOR(SYSDATE);
BEGIN
SELECT User INTO v_username FROM dual;
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') INTO v_ipaddress FROM dual;
INSERT INTO Logs (USERID, DATETIME, IPADDRESS, EVENT, DESCRIPTION) VALUES (user, v_date, v_ipaddress, 'Movie Created', 'Movie created'));
END;
任何帮助将不胜感激!
这SYSTABLE可以帮助你.. HTTP:/ /docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2088.htm – xQbert