我有一个PL / SQL审核触发器,它记录对表所做的所有更改。
我能够找到插入/删除记录的user_id。 (user_id来自Web应用程序,这是我目前无法访问的代码)。
所以,
TRIGGER AUD_CONFIG_TRG
AFTER INSERT OR UPDATE OR DELETE ON CONFIG
IF INSERTING OR UPDATING THEN
v_user_value_txt := :NEW.AUDIT_UPDATED_USER_ID;
但是,对于删除,我不能简单地使用OLD.AUDIT_UPDATED_USER_ID,我也不能使用新的,因为新记录将无法访问。
我考虑过使用BEFORE DELETE,但我仍然只能获得较旧的用户ID而不是删除此记录的用户ID。
如果我想更改装配工具,以便能够维持对谁删除记录的审核,我该怎么办?有没有我可以通过代码传递这个?
答案 0 :(得分:1)
也许你可以使用UID功能,如:
CREATE TRIGGER AUD_CONFIG_TRG
AFTER INSERT OR UPDATE OR DELETE ON CONFIG
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH ROW
DECLARE
V_USER_VALUE_TXT VARCHAR2(32);
BEGIN
IF INSERTING OR UPDATING THEN
V_USER_VALUE_TXT := :NEW.AUDIT_UPDATED_USER_ID;
END IF;
IF DELETING THEN
V_USER_VALUE_TXT := UID;
END IF;
END AUD_CONFIG_TRG;
如果您想要用户名而不是ID号,可以使用USER功能而不是UID。
分享并享受。