2017-01-05 104 views
-2

您能否幫我? 我需要創建觸發器來比較兩個日期和一個數字列,並根據它們插入字符列字。 我知道它應該如何看起來,但在我的腳本中有什麼不對。 這是我的示例 謝謝。Oracle,更新前觸發

create trigger booking_trigger 
before insert on booking 
for each row 
WHEN (new.booking_id IS NULL) 
    begin 
    if sys_date > paid_date and ammount>0 =:new.'Paid' from dual; 
    elsif sys_date > paid_date and ammount=0 =:new.'Not paid' from dual; 
    elsif sys_date < paid_date and ammount=0 =:new.'Waiting'; 
    else :=new.'Broken' 
    end if; 
end 
/
+0

你的代碼中有一些問題;請發佈表格結構和您需要執行的邏輯,以幫助人們幫助您。此外,一些具有所需行爲的示例數據將有助於澄清問題,並幫助人們在發佈之前構建示例和測試代碼 – Aleksej

回答

1

讓我們從IF THEN ELSIF開始。很明顯,關鍵字then缺失。

您希望更新哪一列?假設它是a_column。在這種情況下,你如下其值設置爲'Paid'

:new.a_column := 'Paid'; 

你可以閱讀更多有關觸發器in the documentation