如何在 Oracle Apex 中禁用自动提交

问题描述 投票:0回答:1

我正在开发一种 Oracle Apex 表单,其中有一个字段和两个按钮。我需要一个按钮来执行插入,然后执行提交,而另一个按钮只执行插入而不提交更改。

PL/SQL code with commit

PL/SQL with not commit

是否可以在 Oracle Apex 中禁用自动提交来实现此行为?

提前致谢。

oracle-apex apex apex-code oracle-apex21.2 oracle-apex-23
1个回答
0
投票

在 APEX 中,apex 引擎在固定点提交,并且如果调用其他 API,提交也会隐式执行。有几个博客解释了这一点,只需谷歌“Oracle APEX 何时提交”即可。通常您不必担心提交 - APEX 会为您处理这件事。因此,最佳实践是,永远不要在 APEX 代码中添加

COMMIT;
语句。 由于 APEX 是无状态的,因此 APEX 中不可能出现未提交的代码。呈现页面时,APEX 引擎(在数据库中)生成页面并将其提供给浏览器。当您处于呈现的 APEX 应用程序页面时,没有与数据库的连接。当页面提交或者有ajax进程时,就会建立一个新的连接。

解决这个问题的方法是使用Collections。不要将数据插入表中而不提交,而是将其插入到集合中。然后当你想保存表中的数据时,从集合中选择它并插入到表中。

© www.soinside.com 2019 - 2024. All rights reserved.