创建一个将在 apex 中更新数据库表的按钮

Posted

技术标签:

【中文标题】创建一个将在 apex 中更新数据库表的按钮【英文标题】:Create a button that will update a database table in apex 【发布时间】:2021-04-02 00:39:07 【问题描述】:

我正在尝试创建一个用于更新数据库表的按钮。我正在使用 Oracle Application Express (APEX) 20.2。到目前为止,我所做的是创建一个常规按钮,然后创建一个包含更新表的 PL SQL 代码的进程。通过在“服务器端条件”属性中指定以在按下按钮时执行处理,将处理附加到按钮。这不起作用,并且会感谢任何知道这样做的人。

所以总而言之,我只是想运行 PL SQL 代码,当按下按钮时会更新表格。

这是按钮 APEX Button

这是过程 APEX Process

进程附加到按钮 APEX Process

按下按钮后,这是我在运行时调试模式下看到的 Debug mode

按下按钮后,当前页面处于加载模式 Loading mode

等待加载选项卡完成后出现错误 Error pic

我也尝试使用动态操作而不是进程,但效果不佳。请查看我如何设置动态操作的图片。 Dynamic action

【问题讨论】:

听起来是对的。您确定没有执行 PL/SQL 代码吗?你那里有调试调用来验证它是否真的被调用了?您确定您选择了正确的按钮吗?您能否在 apex.oracle.com 上重现该问题,我们可以在其中查看您的应用程序以了解它在做什么? 你看过调试输出了吗?在开发人员工具栏中启用调试,然后单击按钮并查看该页面的调试。它非常易读,并准确地告诉您正在发生的事情。这可以让您了解为什么它没有按预期工作 @JustinCave 我在帖子中添加了图片,您可以在其中看到按钮、进程以及我目前在调试模式下看到的内容。 @KoenLostrie 我添加了一张图片,说明按下按钮后调试显示的内容。 @SantiagoMartinez 那些调试条目都来自页面渲染过程,(路径信息=显示),你需要接受过程中的那些 - 你能找到那些,它们应该存在吗?这是您的代码(我们看不到它也无法重现问题)- 调试它以找出问题所在。这是一个正常的更新(而不是一个安静的服务调用等)吗?它会挂起还是等待另一个会话的提交?如果您将条件设置为从不,那么页面提交工作正常吗?你能在sql Workshop的页面进程中执行代码没有问题吗? 【参考方案1】:

我认为你把事情复杂化了。

您是否尝试过简单地制作一个在按下按钮时触发的动态操作。

然后您可以让操作运行 PL/SQL 代码来执行您需要的任何操作。

但是,如果您尝试更新屏幕上的表格,那么您应该尝试使按钮仅提交页面。然后使用可编辑区域作为您正在处理的表进行处理,在其中执行代码。如果您在页面上有其他提交不想触发代码,只需在过程中输入按钮按下条件即可。

【讨论】:

我尝试使用动态操作,但没有成功。正如您所提到的,我并没有尝试更新屏幕上的表格。请看我发布的名为“动态动作”的图片。【参考方案2】:

导致我的按钮不起作用的问题是我在 TOAD 中打开了一个会话,并且我没有在 TOAD 的编辑器中提交我当前的查询。我必须在 TOAD 中提交我的更改,以便 TOAD 不会锁定我的 APEX 应用程序中的按钮代码正在使用/访问的行。我还想指出,我的按钮无需附加进程即可工作,而是需要按照@TineO 的建议附加一个动态操作。

【讨论】:

以上是关于创建一个将在 apex 中更新数据库表的按钮的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Apex 更新表的特定行

无法在 Oracle apex 中使用匿名块更新字段

如何解决 Oracle Apex 中的无效列错误?

通过工作簿VBA从主列表更新价格

如何在 APEX 4.1 中为单项表单创建更新流程

如何创建一个按钮,该按钮将在没有侦听器的情况下获取用户的位置