找到删除记录的用户

时间:2012-03-05 16:12:00

标签: oracle plsql triggers

我有一个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。

如果我想更改装配工具,以便能够维持对谁删除记录的审核,我该怎么办?有没有我可以通过代码传递这个?

1 个答案:

答案 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。

分享并享受。