簡體   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