我需要处理一些有些复杂的参数验证要求。我们正在使用针对Oracle 8.1 DB的SQL报告2005。
用户不得选择超过一年的日期范围 必须提供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程序,它将检查并返回一个表明问题的错误。
是否会向用户提出错误?我假设它只会被写入错误日志,并且用户将显示默认错误页面。
我可能会返回一个记录集,其中包含相关的错误消息。
还有其他想法吗?我不是专业人士报告,所以我可能会错过这一点。
答案 0 :(得分:1)
我原本打算调用RAISE_APPLICATION_ERROR会让用户知道吗?
BEGIN
IF <your-parameter-validation> THEN
RAISE_APPLICATION_ERROR (
num=> -20501,
msg=> 'Parameters are incorrect etc.');
END IF;
<continue-your-code>
...
当我们使用Crystal Reports调用PL / SQL函数时,这对我们有用....希望对您有用。