Oracle apex Oracle Apex:使用SQL设置页面项-不添加到会话

Oracle apex Oracle Apex:使用SQL设置页面项-不添加到会话,oracle-apex,Oracle Apex,使用调试时,我看不到会话中的值,但页面项正在呈现: 我正在使用SQL表达式设置源: 我知道查询正在工作,因为页面项正在为页面上的P2\u KPI\u名称呈现 为什么它们在计算后不被添加到会话中?您看到它并不意味着它处于会话状态 出于测试目的,在该页面上创建一个按钮,该按钮将执行提交。按下它,然后检查调试输出中的会话选项卡。您看到它并不意味着它处于会话状态 出于测试目的,在该页面上创建一个按钮,该按钮将执行提交。按下它,然后检查调试输出中的会话选项卡。您可以在更改:P2\u KPI\u ID时

使用调试时,我看不到会话中的值,但页面项正在呈现:

我正在使用SQL表达式设置源:

我知道查询正在工作,因为页面项正在为页面上的P2\u KPI\u名称呈现

为什么它们在计算后不被添加到会话中?

您看到它并不意味着它处于会话状态

出于测试目的,在该页面上创建一个按钮,该按钮将执行提交。按下它,然后检查调试输出中的会话选项卡。

您看到它并不意味着它处于会话状态


出于测试目的,在该页面上创建一个按钮,该按钮将执行提交。按下它,然后检查调试输出中的会话选项卡。

您可以在更改:P2\u KPI\u ID时使用动态操作,在该操作中,您可以使用PL/SQL设置第二个项(记住将P2\u KPI\u ID添加到要提交的项中,并将第二个项作为要返回的项添加)。
“始终替换会话状态中的值”在呈现项目时设置项目值。设置:P2\u KPI\u ID时不会刷新项目本身,因此不会自动设置其值。

您可以在更改:P2\u KPI\u ID时使用动态操作,在其中使用PL/SQL设置第二个项目(请记住将P2_KPI_ID添加到要提交的项目以及第二个项目作为要返回的项目)。
“始终替换会话状态中的值”在呈现项目时设置项目值。设置:P2\u KPI\u ID时,项目本身不会刷新,因此其值不会自动设置。

您看到的是页面呈现期间使用的性能优化结果。大多数时候,我们想到的是会话状态,我们想到的是持久会话状态,即会话表

然而,APEX在呈现页面时经常使用内存中的会话状态,以避免在会话表通常不需要存在的情况下对其运行DML的开销(下一次提交将覆盖它)

请参阅这篇古老但仍然相关的帖子以了解更多信息:

您将看到页面呈现期间使用的性能优化结果。大多数时候,我们想到的是会话状态,我们想到的是持久会话状态,即会话表中的状态

然而,APEX在呈现页面时经常使用内存中的会话状态,以避免在会话表通常不需要存在的情况下对其运行DML的开销(下一次提交将覆盖它)

请参阅这篇古老但仍然相关的帖子以了解更多信息:

如果我正在计算页面项目,并指定该值应始终替换处于会话状态的项目,为什么我必须提交(请参见屏幕截图)。某种程度上意味着它会将值放入会话状态。我尝试使用Post计算来执行APEX_UTIL.SET_会话_状态,但它不喜欢。为什么?出于测试目的。问题是为什么会有一个选项“始终替换会话状态中的值”,不会在计算时替换会话状态中的值?该选项不会说“始终替换会话状态中的值(但仅在子序列提交后)”如果我正在计算页面项,并指定该值始终替换会话状态中的项,为什么必须提交(请参见屏幕截图)。某种程度上意味着它会将值放入会话状态。我尝试使用Post计算来执行APEX_UTIL.SET_会话_状态,但它不喜欢。为什么?出于测试目的。问题是为什么会有一个选项“始终替换会话状态中的值”,不会在计算时替换会话状态中的值?该选项不会说“始终替换会话状态中的值(但仅在子序列提交后)”因此,如果说源计算将始终替换会话状态中的任何值,这有点误导,因为它显然不会将计算点的值提交到会话中?此替换选项有不同的用例,而且措辞一开始可能会误导我同意。幸运的是,我们使用Dynamic为您的需求提供了另一个选项c操作,虽然我正在传递上一页的ID。然后,当目标页加载时,我正在使用此ID回调各个页面项。理想情况下,它们在会话中调试会更好,因为它们有很多。我猜另一个选项是使用提取行进程填充页面项,使用主键…I我假设这会将页面项放入会话中,我需要将源设置为我正在考虑的数据库列。因此,说源计算将始终替换会话状态中的任何值有点误导,因为它显然不会将计算点的值提交到会话中?此替换选项有不同的用途一开始我同意这种说法。幸运的是,我们有另一个选项来满足您的需求,即使用动态操作,尽管我正在传递上一页的ID。然后,当加载目标页时,我将使用此ID来撤回各个页面项。理想情况下,它们在会话中会更好地进行调试,因为有很多。我猜另一个选择是使用获取行过程来填充页面项目,使用主键…我假设这会将页面项目放入会话中,我需要将源设置为我正在思考的数据库列。是否提交表单?提交表单时,项目将保存在会话中。如果e使用AJAX,您需要在会话中手动保存项目;END;是否提交表单?提交表单时,项目将保存在会话中。如果使用AJAX,则需要在会话中手动保存项目。如下图所示,BEGIN APEX_UTIL.SET_session_STATE('my_item','myvalue');END;