Мой вопрос о создании триггера после вставки? - PullRequest
0 голосов
/ 31 октября 2018

Мне нужно создать триггер после вставки. Но ex, который я видел, не работает. Может кто-нибудь помочь мне с ex аналогичного триггера. Большое спасибо !!

пример это:

CREATE OR REPLACE TRIGGER TRG_ACCT_IDW<br> 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;

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Ваш триггер должен выглядеть примерно так:

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 и может создавать триггеры.

0 голосов
/ 31 октября 2018

В большинстве случаев ORA-00942 "таблица или представление не существует" является проблемой в привилегиях.

Попробуйте предоставить права на публикацию:

GRANT ALL ON TICKET_NOTIFICE TO PUBLIC

Если это работает, вы знаете, что испортили свою конфигурацию.

Проверьте, какому пользователю нужны какие права. В вашем случае исполняющему uesr нужно insert на TICKET_NOTIFICE, я думаю.

...