Oracle APEX:如何在动态操作中显示错误消息

时间:2017-08-28 18:33:33

标签: plsql oracle-apex

我正在尝试使用动态操作显示成功/错误消息,但没有显示任何内容。

以下是我的行动真实情况的代码。

declare
   v_complete number;
begin
 select count(task_status) into v_complete from IT_TASK where TASK_STATUS != 3 AND REQUEST_ID = :P32_ID ;

 if v_complete > 0 then
    apex_application.g_print_success_message := '<span style="color:red">Not all Task are complete!</span>';
    rollback;
 end if;

 if v_complete = 0 then
    apex_application.g_print_success_message := '<span style="color:green">All Task are complete!</span>';
    rollback;
 end if;
end;

但是,在满足条件后不会显示任何消息。 谁能告诉我为什么?

3 个答案:

答案 0 :(得分:2)

apex_application.g_print_success_message仅在呈现页面时由Apex引擎使用 - 在呈现页面之后,任何更改它的动态操作都将无效。

您可以实现目标的一种简单方法是向页面添加仅显示项目,例如P1_RESULT,并在动态操作中设置其值。您的动态操作还可以根据需要显示和/或隐藏显示项目。

答案 1 :(得分:0)

在声明

时需要将v_complete初始化为0
declare
   v_complete number := 0;
begin..
.......

答案 2 :(得分:-1)

在sqlplus或sqldeveloper中运行查询并查看结果。为v_complete&lt;添加第三个条件0带有不同的消息。此外,打开调试,看看它是否达到了真实状态。此外,最佳做法是避免将匿名PL / SQL块放入APEX应用程序。这应该是一个存储函数,并被调用以增强重用和维护。