我正在尝试使用动态操作显示成功/错误消息,但没有显示任何内容。
以下是我的行动真实情况的代码。
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;
但是,在满足条件后不会显示任何消息。 谁能告诉我为什么?
答案 0 :(得分:2)
apex_application.g_print_success_message
仅在呈现页面时由Apex引擎使用 - 在呈现页面之后,任何更改它的动态操作都将无效。
您可以实现目标的一种简单方法是向页面添加仅显示项目,例如P1_RESULT
,并在动态操作中设置其值。您的动态操作还可以根据需要显示和/或隐藏显示项目。
答案 1 :(得分:0)
在声明
时需要将v_complete初始化为0declare
v_complete number := 0;
begin..
.......
答案 2 :(得分:-1)
在sqlplus或sqldeveloper中运行查询并查看结果。为v_complete&lt;添加第三个条件0带有不同的消息。此外,打开调试,看看它是否达到了真实状态。此外,最佳做法是避免将匿名PL / SQL块放入APEX应用程序。这应该是一个存储函数,并被调用以增强重用和维护。