Oracle apex Apex 5:动态操作集页面项值

Oracle apex Apex 5:动态操作集页面项值,oracle-apex,oracle-apex-5,Oracle Apex,Oracle Apex 5,在使用新的apex 5版本时,我遇到了以下问题: 无法通过plsql获取页面项的值: nv(:P2_TO, :P2_FROM) <<< DOESN'T WORK *I Yes P@_FROM exist and verified nv(:P2_TO, 'test') <<< DOES WORK nv(:P2-TO,:P2-FROM)这很符合逻辑。您正在引用变量的会话状态,它可能为空。这并不是因为项目P2_TO或P2_FROM在浏览器的页面上有一个值,而是因为

在使用新的apex 5版本时,我遇到了以下问题:

无法通过plsql获取页面项的值:

nv(:P2_TO, :P2_FROM) <<< DOESN'T WORK *I Yes P@_FROM exist and verified
nv(:P2_TO, 'test') <<< DOES WORK

nv(:P2-TO,:P2-FROM)这很符合逻辑。您正在引用变量的会话状态,它可能为空。这并不是因为项目
P2_TO
P2_FROM
在浏览器的页面上有一个值,而是因为它们在会话状态下设置了一个值。例如,加载页面,从
P2\u中输入一个值。然后单击开发者工具栏上的“会话”,您将看到
中的P2\u中没有任何值
会话状态中的值可以与实际网页上的值不同

这就是为什么会有附加属性“PageItemsToSubmit”以及必须与数据库通信的操作(即向Web服务器执行ajax请求)的确切原因。这允许您定义其值必须发送到服务器的项目,以便您可以使用其值


因此:对于这种类型的操作,请将
P2\u添加到“要提交的页面项目”列表中

APEX_UTIL.set_session_state(p_name=>'PX_MY_ITEM',p_value=>'wibble')

示例1

APEX_UTIL.set_session_state('P1_MY_ITEM','My Text Value');
示例2

APEX_UTIL.set_session_state('P1_MY_OTHER_ITEM', 42);
示例3

APEX_UTIL.set_session_state('P1_MY_OTHER_OTHER_ITEM', MY_PLSQL_VARIABLE);

请尝试
nv(:P3_至,:P3_自)
-缺少
P3_自
之前的冒号。很抱歉,我在此处重写了代码,但分栏已在此处。(APEX甚至不会保存页面,因为如果您犯了这样的错误,因为它首先编译plsql,这不会通过编译器)那么您可以显示更多代码吗?现在不可能说了。我添加了相关的apex屏幕,但这实际上是所有的代码,NV肯定不同于NVL(无论如何,你应该使用COALESCE)这个“要提交的页面项目”在哪里?@AndrewT取决于。你在做什么?动态操作,plsql?如果是,请确保显示“属性”面板的所有属性,而不仅仅是普通属性。您可以使用属性面板顶部的两个按钮来切换这些选项。我已经问了以下问题,我想做的只是在分支到另一个页面之前设置一个页面项值,而不使页面项再次变为null。这个问题看起来很相似,但我听不懂你的回答:(我正试图做同样的事情。你找到解决办法了吗?@Zubair你能不能再详细说明一下你试图“做同样的事情”?细节可能很重要!