是否可以使用plsql获取默认项值?我有一个验证,如果它失败,我想将项目重置为其默认值。
我尝试使用apex_util.set_session_state('P_ITEM_NAME', null)
,但没有任何明显的效果。
如何检索默认项目或重置项目本身?
答案 0 :(得分:2)
创建页面进程时,会出现一个名为“显示内联验证错误”的情况,这可能有帮助吗?在此过程中,您可以将项重置为null,然后在页面加载时,项值将返回其默认值。
UPD:
创建流程:
处理点:在标题前加载
条件:显示内联验证错误
流程来源:
begin
for i in (
select t.ITEM_DEFAULT, t.item_name
from apex_application_page_items t
where t.application_id = :APP_ID
and t.page_id = :APP_PAGE_ID
) loop
apex_util.set_session_state(i.item_name, i.item_default);
end loop;
end;
这会将所有页面项恢复为默认值。 这个解决方案有些难看,但我不知道这个问题的另一个解决方案。
答案 1 :(得分:0)
:P_ITEM_NAME := null;
这里的区别在于项目前面的“:”。像这样使用它将提供对项目的访问。我相信不需要使用撇号。
如果这不适用于您的版本,请尝试不使用;。
所以你可以使用:
:P_ITEM_NAME
获得价值。
答案 2 :(得分:0)
我找不到任何会使用项目返回默认值的函数。但是我可以使用默认项目设置来模仿这个。当页面出现验证错误时,页面进程不会运行,所以我添加了条件页面进程,它执行与验证相同的检查,当这些检查表明验证失败时,它只清除项目状态。
这很丑陋,因为它需要复制检查,似乎有必要在需要这种重置机制的所有页面中复制几乎相同的页面控件。