在使用新的 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 上都试过了,我自己的主机都不起作用。
更多信息:
在使用新的 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 上都试过了,我自己的主机都不起作用。
更多信息:
这很合乎逻辑。您正在引用变量的会话状态,它可能是空的。这并不是因为项目P2_TO
或P2_FROM
在您的浏览器中的页面上有值,它们在会话状态中设置了值。例如,加载您的页面,在 中输入一个值P2_FROM
。然后单击开发人员工具栏上的“会话”,您会看到P2_FROM
.
会话状态中的值可能与实际网页上的值不同。
这就是为什么有附加属性“要提交的页面项目”与必须与数据库通信的操作(即向网络服务器执行 ajax 请求)的确切原因。这允许您定义必须将其值发送到服务器的项目,以便实际上您可以使用它们的值。
所以:对于这种类型的操作,添加P2_TO
到“要提交的页面项目”列表中
你总是可以使用 apex util:
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);