Я пишу триггер при нажатии кнопки на кнопке сохранения для формы Oracle Forms 6i, и он должен выполнить несколько сценариев.
Вот некоторая справочная информация:
поля, которые нас интересуют:
n_number,
alert_id,
end_date
Для всех трех сценариев мы сравниваем записи-кандидаты со следующими записями в базе данных (ради
аргумент, давайте предположим, что они единственные записи в базе данных
пока):
alert_id|| n_number|| end_date
-------------------------------------
1|| 5|| _______
2|| 6|| 10/25/2009
Сценарий 1: пользователь вводит новую запись:
alert_id 1
n_number 5
end_date NULL
Цель: запретить пользователю вводить повторяющиеся строки
Сценарий 2: пользователь вводит новую запись:
alert_id 1
n_number 10
end_date NULL
Цель: уведомить пользователя о том, что этот alert_id уже существует, но при необходимости предоставить пользователю возможность зафиксировать строку.
Сценарий 3: пользователь вводит новую запись:
alert_id 2
n_number 6
end_date NULL
Цель: уведомить пользователя о том, что этот alert_id имел место в прошлом (т. Е. У него не нулевое значение end_date), но разрешить пользователю зафиксировать строку, если это необходимо.
Я написал код, который, кажется, соответствует первым двум сценариям, но не позволяет мне выполнить третий.
Проблемы: когда я вхожу в третий сценарий, мне предлагается зафиксировать запись, но когда я пытаюсь это сделать, появляется предупреждение «duplicate_stop», которое мешает мне.
Проблемы: я получаю следующую ошибку: ORA-01843: недопустимый месяц. При тестировании кода для третьего сценария в Toad (жесткое кодирование значений и т. Д.) Все было в порядке. Почему я сталкиваюсь с этими проблемами во время выполнения?
Помощь очень ценится.
Спасибо