Oracle APEX-如何在您自己的自定义验证过程中引发错误而不在错误页面上显示错误

时间:2019-12-13 13:51:25

标签: oracle-apex

我正在使用Oracle Apex 19.2。我需要创建一个包含许多字段和许多验证的表单页面。

而不是为每个字段创建一个验证例程,而是选中将它们全部放入一个PL / SQL过程中,并在APEX中创建流程例程。在该pl / sql过程中,我将执行所有必要的检查,并使用apex_error.add_error将所有错误添加到堆栈中。

如果至少有一个错误,我想中断过程执行并将其显示在页面上。问题在于该过程始终成功完成,因此不会显示任何错误。我尝试了raise_application_error,但是在错误页面上也可以看到我的自定义错误。

在提高apex_application.e_stop_apex_engine时同样适用-除了我的自定义验证之外,ORA-20876还存在apex_application.stop_apex_engine错误。

有什么办法可以在不引发错误的情况下中断过程执行,或者以某种方式忽略我为破坏它而引发的错误?

Apex error

1 个答案:

答案 0 :(得分:0)

问题解决了。

我将PL / SQL过程定义为APEX Process例程。相反,我应该将其作为APEX验证来完成。看起来APEX会执行所有验证,然后,即使它们一切正常,它也会检查错误堆栈,并且如果有任何错误,则不会继续进行处理。下面是实现方法的步骤。

  1. 使用验证类型= PL / SQL函数主体(返回布尔值)定义新的APEX验证
  2. 从这里开始棘手的部分-在PL / SQL代码字段中放置PL / SQL过程,并且始终返回true。看起来像:

your_plsql_package.your_procedure; return true;

  1. 在必填字段“错误消息”中,您可以编写所需的任何消息-它永远不会显示在错误页面上。

就是这样。除了可以在页面上进行数十次验证之外,您还可以使用一个过程来将它们全部统治:)但是,它可能对开发人员更友好。