繁体   English   中英

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

[英]Insert value into 2 tables on button click on Oracle Application Express

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

您都可以做。 哪个合适取决于您的情况。

  1. 如果历史记录表只是记录对应用程序表的所有更改的日志表,那么我对插入到历史记录表中的应用程序表上的简单触发器感到满意。 但是,您需要检查环境中是否允许触发器(某些DBA不喜欢它们)。 缺点是可以禁用触发器-这意味着您的历史记录表不会被更新,并且您的应用程序不会意识到它不起作用-用户将不会收到任何错误。 优点在于,无论哪个应用程序正在更新应用程序表(无论是Apex还是其他客户端),都将保留历史记录表。

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

  3. 为应用程序状态更改编写包装程序,以完成这两个操作; 并从您的Apex PL / SQL流程中调用此过程。 这样,该程序可以被其他系统重用(如果需要的话)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM