使用新的apex 5版本时,我遇到了以下问题:
无法通过plsql获取页面项的值:
nv(:P2_TO, :P2_FROM) <<< DOESN'T WORK *I Yes P@_FROM exist and verified
nv(:P2_TO, 'test') <<< DOES WORK
我在apex.oracle.com和我自己的主机上都试过这两个都不会工作。
更多信息:
答案 0 :(得分:12)
这很合乎逻辑。您正在引用变量的会话状态,它可能是空的。这不是因为项目P2_TO
或P2_FROM
在浏览器的页面上有一个值,它们在会话状态中设置了值。例如,加载您的网页,在P2_FROM
中输入一个值。然后点击开发人员工具栏上的“会话”,您会发现P2_FROM
中没有任何值
会话状态中的值与实际网页上的值不同。
这就是为什么有一个附加属性“要提交的页面项目”的确切原因,其中包含必须与数据库通信的操作(即对Web服务器执行ajax请求)。这允许您定义其值必须发送到服务器的项目,以便您可以使用它们的值。
因此:对于此类操作,请将P2_TO
添加到“要提交的页面项目”列表中
答案 1 :(得分:1)
你总是可以使用apex util:
APEX_UTIL.set_session_state(p_name =&gt;'PX_MY_ITEM',p_value =&gt;'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);