【发布时间】:2011-11-25 04:44:45
【问题描述】:
我希望能够获取序列值并在触发器中的多个操作上使用相同的值来对表执行审计操作。因此,当更新表时,我想获取所有已更新的列。但是当我在数据库中注册更改的列时,我希望将它们分组为一个。有没有办法获取序列号并存储在触发器内的变量中。我能够编写的代码不断得到 PLS-00357。
CREATE OR REPLACE TRIGGER TRG_EMPLOYEE_CHANGED AFTER INSERT OR DELETE
OR UPDATE ON EMPLOYEE REFERENCING OLD AS old NEW AS new FOR EACH ROW
DECLARE
GROUPID NUMBER := SEQ_POPERATIONLOG_LOGSUBNO.NEXTVAL;
BEGIN
OPERATION('FIRST_NAME', GROUPID, :old.FIRST_NAME, :new.FIRST_NAME);
OPERATION('LAST_NAME', GROUPID, :old.LAST_NAME, :new.LAST_NAME);
OPERATION('ADDRESS', GROUPID, :old.ADDRESS, :new.ADDRESS);
OPERATION('TELEPHONE', GROUPID, :old.TELEPHONE, :new.TELEPHONE);
END;
【问题讨论】:
标签: oracle triggers sequence declaration