Мне нужно обработать несколько несколько сложных требований к валидации параметров. Мы используем отчеты SQL 2005 за БД Oracle 8.1.
Пользователь не должен выбирать диапазон дат, превышающий год
Либо FooParm должен быть предоставлен
или же
Коды должны быть предоставлены, а разница между CodeStart и CodeEnd должна быть меньше 1001
В формате псевдокода
(dateStart and dateEnd DIFF < 1 year AND !=0)
AND
(
(FooParm !=0)
OR
(CodeStart AND CodeEnd < 1001 AND CodeStart!='' AND CodeEnd!='')
)
Из того, что я видел, единственный способ добиться этого - использовать пользовательский интерфейс, но у нас он есть, и он не будет изменен для этого запроса.
Я хочу создать процедуру Oracle, которая будет проверять и возвращать ошибку с указанием проблемы.
Будет ли выдана ошибка пользователю? Я предполагаю, что он будет просто записан в журнал ошибок, и пользователю будет показана страница ошибок по умолчанию.
Я мог бы вернуть набор записей с соответствующим сообщением об ошибке.
Есть еще идеи? Я не являюсь профессионалом в области отчетности, так что, возможно, я ошибаюсь.