在Oracle Application Express上单击按钮,将值插入2个表中



因此,基本上在我的数据库中,我有一个表,用于存储作业的应用程序。这些应用程序具有用户将能够从下拉菜单更改为例如被邀请面试或应用程序成功的状态。我还有一个表,需要存储每个应用程序的状态何时更改以及更改为什么。我想这样做的方法是,我在Oracle application Express上有一个表格,显示一些应用程序。然后,他们可以单击编辑按钮来更改其状态。当按下提交按钮时,我希望它更新应用程序表中的状态,同时在历史记录表中创建一个新条目,其中包含状态更改为的值以及更改日期。我会为此使用触发器吗?或者在Oracle application Express上有其他方法吗。如有任何帮助,我们将不胜感激。

您可以执行任一操作。哪个合适取决于你的情况。

  1. 如果历史记录表只是一个记录应用程序表所有更改的日志表,那么我可以在应用程序表上使用一个简单的触发器来插入历史记录表。但是,您需要检查您的环境中是否允许使用触发器(有些DBA不喜欢它们)。缺点是触发器可以被禁用——这意味着你的历史记录表不会被更新,你的应用程序也不会意识到它不工作——用户不会出错。其优点是,无论哪个应用程序正在更新应用程序表,无论是Apex还是其他客户端,都将维护历史记录表。

  2. 您可以在提交页面时运行一个或多个PL/SQL进程,并可以在其中放入任意PL/SQL,例如更新应用程序状态,然后插入历史记录表。这样做的好处是,代码要么会成功运行,要么会因错误而失败,这样您就知道历史记录将与应用程序表同步。这样做的缺点是,逻辑是在前端代码中编码的;如果您的公司决定编写另一个更新应用程序表的接口,则可能不会插入历史记录(或者不会以相同的方式插入)。

  3. 为应用程序状态更改编写一个包装过程,它同时执行这两个操作;并从您的Apex PL/SQL进程中调用此过程。通过这种方式,该程序可以被其他系统重复使用(如果需要的话)。

最新更新