2010-04-25 193 views
2

完成我有兩個表甲骨文警告:執行與警告

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

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

我創建了一個觸發器ROLLINGSTOCK_ORDER更新DELIVERYDATE時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 TRIGGER_UpdateDeliveryDate編譯完成。

的警告並沒有給我任何信息,以便

  1. 我怎麼能看到警告的細節?

  2. 觸發器似乎對我來說可以發現問題嗎?

感謝

+0

http://stackoverflow.com/questions/2678102/create-a-trigger-that-updates-a-column-on-one-table-when-a-column-in-another-tab的可能重複 – APC 2010-04-25 13:48:00

回答

0
本週早些時候,你問了一個問題上寫一個觸發器執行有條件更新

錯誤。我發佈了two examples of how to achieve that end。你看起來已經完成的是將這兩個例子混合成一個不能編譯的單個spavined觸發器。

要清楚你只需要下列其中一項。無論是

BEFORE UPDATE OF DELIVERYDATE ON Orders 

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

使用第一個選項,如果你只是有一件邏輯的應用。如果你想讓你的觸發器處理其他的邏輯,也可以使用第二個版本,通常就是這樣。

0

你寫

BEGIN  
then 

這是不正確的語法。你錯過了IF

您還您UPDATE後失蹤分號(;)。


你可能會使用

Show Error Trigger TRIGGER_UpdateDeliveryDate