2017-01-05 5 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

Смежные вопросы