我需要在插入后创建一个触发器,但是我见过的ex无法正常工作,有人可以帮我解决类似触发器的问题吗? 非常感谢!
一个例子是:
CREATE OR REPLACE TRIGGER TRG_ACCT_IDW
AFTER INSERT
ON ACNTGROUPS
FOR EACH ROW
BEGIN
IF :NEW.TYPE = '1' then INSERT INTO IDWORKS_HC
(ACCOUNT,IDW_CATEGORYNO,GRTYPE)
VALUES
(:NEW.ACCOUNT,:NEW.GROUP_,:NEW.TYPE); END IF; END;
答案 0 :(得分:3)
您的触发器应类似于:
CREATE OR REPLACE TRIGGER ticket_notifice_t
AFTER INSERT ON ticket
FOR EACH ROW
BEGIN
INSERT INTO ticket_notifice
(id,
useridrichiedente,
stato,
nosologico)
VALUES
(:new.id,
:new.useridrichiedente,
:new.stato,
:new.nosologico);
END ticket_notifice_t;
/
请注意,在每次引用FOR EACH ROW
记录之前,都存在new
和冒号(:)。
此外,这还假定您要在其上创建触发器的架构对ticket和ticket_notifice表具有特权,并且可以创建触发器。
答案 1 :(得分:0)
大多数时间ORA-00942“表或视图不存在”是特权中的问题。
尝试向公众授予权利:
GRANT ALL ON TICKET_NOTIFICE TO PUBLIC
如果这行得通,您知道您搞砸了配置。
检查哪些用户需要哪些权限。我认为在您的情况下,执行的uesr需要在insert
上使用TICKET_NOTIFICE
。