相关疑难解决方法(0)

我可以复制:OLD和:Oracle存储过程中的新伪记录吗?

我有一个AFTER INSERT OR UPDATE OR DELETE,我正在写存储发生在某个表中的每个记录修改的触发,通过复制INSERTUPDATE :NEW值成镜表,并DELETE:OLD值.

我可以通过有条件地将:NEW或者:OLD记录传递给一个程序然后插入我的历史表中来大大地解决我的代码.不幸的是,我似乎找不到通过整个:OLD:NEW记录的方法.

我是否遗漏了某些内容,或者在调用插入过程时是否无法避免枚举每个列:NEW:OLD列?

我想做以下事情:

DECLARE
  PROCEDURE LOCAL_INSERT(historyRecord in ACCT.ACCOUNTS%ROWTYPE) IS
  BEGIN
    INSERT INTO ACCT.ACCOUNTS_HISTORY (ID, NAME, DESCRIPTION, DATE) VALUES (historyRecord.ID, historyRecord.NAME, historyRecord.DESCRIPTION, SYSDATE);
  END;
BEGIN
  IF INSERTING OR UPDATING THEN
    LOCAL_INSERT(:NEW);
  ELSE --DELETING
    LOCAL_INSERT(:OLD);
  END IF;
END;
Run Code Online (Sandbox Code Playgroud)

但我坚持这样做:

DECLARE
  PROCEDURE LOCAL_INSERT(id in ACCT.ACCOUNTS.ID%TYPE,
                         name in ACCT.ACCOUNTS.NAME%TYPE,
                         description in ACCT.ACCOUNTS.DESCRIPTION%TYPE) IS
  BEGIN
    INSERT …
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql stored-procedures

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

oracle ×1

plsql ×1

stored-procedures ×1

triggers ×1