如何解决Oracle DB触发器错误?
我编写了一个DB触发器来监视插入操作。插入新记录后,我想自动将如何解决Oracle DB触发器错误?,oracle,plsql,triggers,database-trigger,Oracle,Plsql,Triggers,Database Trigger,我编写了一个DB触发器来监视插入操作。插入新记录后,我想自动将CREATION\u DATE设置为sysdate 我想插入新记录时出错: 错误 ORA-04091:表格报告正在变异,触发器/函数可能不存在 看到了吗 ORA-06512:在“创建日期测试”第2行 ORA-04088:执行触发器“创建日期测试”时出错 我的代码: CREATE OR REPLACE TRIGGER creation_date_test AFTER INSERT ON REPORT FOR EACH ROW
CREATION\u DATE
设置为sysdate
我想插入新记录时出错:
错误ORA-04091:表格报告正在变异,触发器/函数可能不存在 看到了吗
ORA-06512:在“创建日期测试”第2行
ORA-04088:执行触发器“创建日期测试”时出错 我的代码:
CREATE OR REPLACE TRIGGER creation_date_test
AFTER INSERT ON REPORT FOR EACH ROW
BEGIN
UPDATE REPORT set CREATION_DATE = sysdate
WHERE ROWID = :new.ROWID;
END;
我还尝试将
ROWID=:new.ROWID
替换为PROJECT\u ID=new.PROJECT\u ID
。它会抛出相同的错误。听起来您只是想要一个设置:new.creation\u date
create or replace trigger creation_date_test
before insert on report
for each row
begin
:new.creation_date := sysdate;
end;
听起来您只需要一个设置
:new.creation\u date
create or replace trigger creation_date_test
before insert on report
for each row
begin
:new.creation_date := sysdate;
end;
非常感谢!你的回答真的很有帮助@deli-是
creation\u date
avarchar2
而不是名称所暗示的date
?我不希望在我发布的代码中使用任何字符串。我现在已经更改了数据类型。谢谢非常感谢!你的回答真的很有帮助@deli-是creation\u date
avarchar2
而不是名称所暗示的date
?我不希望在我发布的代码中使用任何字符串。我现在已经更改了数据类型。谢谢