2016-09-01 92 views
0

我正在使用Oracle APEX構建交互式報告。在創建頁面中,我想要在數據庫中隱藏一個名爲create_time的字段,該字段在創建頁面上未顯示。同樣,在編輯頁面中,我想更新數據庫中名爲update_time的字段。未能在APEX報告中創建創建時間

對於編輯頁面,我加了一個過程和PLSQL代碼設置爲:

update table_test t set t.UPDATE_DATE = sysdate 
     where t.ROWID = :P2_ROWID; 

而這個工作。

然而,當涉及到創建頁面,我設置了PLSQL代碼:

update table_test t set t.CREATE_DATE = sysdate 
     where t.PROJECT_ID= :P3_PROJECT_ID; 

這沒有奏效。然後我硬編碼where子句,像這樣:其中t.PROJECT_ID ='100',我創建了一個ID = 100的項目,它的工作原理!所以我想,出於某種原因:P3_PROJECT_ID未能獲取該值。有人知道爲什麼除了使用過程之外,還有其他方法可以插入create_time嗎?謝謝!

回答

1

原因是APEX不知道P3_PROJECT_ID的值,除非您的進程使用ID作爲PK並返回PK值。

創建/更新列的更簡單的方法是在表上創建一個DB觸發器,每當插入/更新記錄時觸發,包括從SQL Workshop或外部APEX一起觸發。 安裝示例應用程序之一併查看錶格上的觸發器以獲得最佳做法。