Oracle Warning: выполнение завершено с предупреждением - PullRequest
1 голос
/ 25 апреля 2010

У меня есть две таблицы

Orders(ID,ORDERDATE,DELIVERYDATE,GOODID,QUANTITY,COLLECTIONFROM,DELIVERYTO,NOTES)

и

ROLLINGSTOCK_ORDER(ORDERID,ROLLINGSTOCKID,DEPARTUREDATE,DELIVERYDATE,ROUTEID)

Я создал триггер для обновления DELIVERYDATE в ROLLINGSTOCK_ORDER при обновлении DELIVERYDATE в Orders

CREATE OR REPLACE TRIGGER TRIGGER_UpdateDeliveryDate
BEFORE UPDATE OF DELIVERYDATE ON Orders 
FOR EACH ROW 
BEGIN    
then
   UPDATE LOCOMOTIVE_DRIVER ld
   set ld.DELIVERYDATE = :new.DELIVERYDATE
   where ld.orderid = :new.id
end if;
END;

Когда я запускаю его, я получаю следующее сообщение

Предупреждение: выполнение завершено с предупреждение ТРИГГЕР TRIGGER_UpdateDeliveryDate Скомпилировано.

Предупреждение не дает мне никакой информации, поэтому

  1. Как просмотреть подробности предупреждения?

  2. Мне кажется, что триггер в порядке, вы можете определить проблему?

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 апреля 2010

Ранее на этой неделе вы задали вопрос о написании триггера для выполнения условного обновления.Я опубликовал два примера того, как этого достичь .Похоже, вы сделали из двух примеров один единый триггер, который не компилируется.

Чтобы понять, вам нужен только один из следующих.Либо

BEFORE UPDATE OF DELIVERYDATE ON Orders

, либо

 BEFORE UPDATE ON Orders 
 ... 
    if :new.delivery_date != :old.delivery_date then

Используйте первую опцию, если у вас есть только один кусок логики для применения.Используйте вторую версию, если вы хотите, чтобы ваш триггер обрабатывал и другие части логики, что обычно имеет место.

0 голосов
/ 25 апреля 2010

Вы пишете

BEGIN    
then

неправильный синтаксис. Вам не хватает IF?

Вам также не хватает точки с запятой (;) после вашего UPDATE.


Вы можете получить ошибку, используя

Show Error Trigger TRIGGER_UpdateDeliveryDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...