1. 程式人生 > >oracle form 資料操作機制 儲存按鈕 KEY-COMMIT

oracle form 資料操作機制 儲存按鈕 KEY-COMMIT

操作資料無非刪除、更新、插入的動作,在Oracle Form依靠下面觸發器完成這些操作。
Form Trigger
Key-commit 儲存按鈕觸發/Ctrl+S 鍵盤觸發/程式碼觸發
Block Trigger
Pre-delete Pre-update Pre-insert
On-delete On-update On-insert On-lock
Oracle儲存資料的機制:第一步依次從資料庫中刪除在Block上刪除的記錄(刪除每條記錄時先觸發Pre-delete,再觸發On-delete),第二步依次從資料庫中更新在Block上更新的記錄(更新每條記錄時先觸發Pre-update,再觸發On-update),第三步依次向資料庫中插入在Block上插入的記錄(插入每條記錄時先觸發Pre- insert,再觸發On- insert),第四步COMMIT。其中任何一步出錯的話都會引發異常,回滾以前的操作。所以我猜想Oracle Form肯定有一套機制能記錄Block上每條記錄的狀態,所以在儲存時可觸發相應的Trigger。
如果限制Form在一定條件下才允許儲存,可以將控制邏輯寫在Form級trigger pre-commit或者block級的Pre-delete,Pre-update,Pre-insert程式碼中(這種情況控制可以針對操作型別進行控制,更加精細),一但條件不滿足,立即丟擲異常或忽略本次操作。
On-lock觸發器在使用者在介面上企圖修改資料時觸發,利用了Oracle悲觀封鎖的機制,保證資料的完整性和一致性

相關推薦

oracle form 資料操作機制 儲存按鈕 KEY-COMMIT

操作資料無非刪除、更新、插入的動作,在Oracle Form依靠下面觸發器完成這些操作。 Form Trigger Key-commit 儲存按鈕觸發/Ctrl+S 鍵盤觸發/程式碼觸發 Block Trigger Pre-delete Pre-update Pre-insert On-delete On-

Oracle Form 資料提交方式

commit_form 先對Form上的變動資料commit,再對程式碼中類似的DML語句進行提交,當兩次提交有衝突時以DML語句的提交為準。 適用情況:直接在FORM上修改資料時,可以使用。 commit 對Form和資料庫進行提交,如果Form上

Navicat操作Oracle、JPA註解實現Oracle插入資料 主鍵ID自增

首先在Oracle表中實現ID自增,其次在JPA中實現。 Oracle資料庫不存在主鍵自增選項,現在想實現ID自增。 部落格連結:oracle 實現插入自增列   開啟Navicat,定位到自己建立的表。 一、 建立序列 其他-序列&

oracle 效能優化操作七:索引提高資料分佈不均勻時查詢效率

索引的選擇性低,但資料的分佈差異很大時,仍然可以利用索引提高效率。 A、資料分佈不均勻的特殊情況下,選擇性不高的索引也要建立。 表ServiceInfo中資料量很大,假設有一百萬行,其中有一個欄位DisposalCourseFlag,取範圍為列舉:[0,1,2,3,4,5,6

Mysql 插入資料存在時執行update操作:ON DUPLICATE KEY UPDATE

-- 建立表:test: CREATE TABLE `test` (   `objId` int(10) NOT NULL,   `orgId` int(10) NOT NULL,   `objName` varchar(50) NOT NULL,   PRIMARY KE

資料的物理儲存格式,邏輯格式,操作指令需要分開來思考

1、BTREE, HASH, FIXED_RECORD,這是資料儲存的物理格式 2、類似BRTF, CTTF,XML, JSON,這些是資料的邏輯格式 3、SQL, XPATH,這些是對資料的操作指令 將這些分開來思考和實踐,是完全必要的

微信小程式簡單的form表單本地儲存資料

效果圖:主要利用小程式的getStorage來實現非同步本地儲存。小程式目錄結構如下:新建專案前,為了簡化操作可直接右鍵新建目錄,這樣建出來的檔案會直接寫在app.json中,無需手動新增。login.

R︱高效資料操作——data.table包(實戰心得、dplyr對比、key靈活用法、資料合併)

每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~———————————————————————————      由於業務中接觸的資料量很大,於是不得不轉戰開始尋求資料操作的效率。於是,data.table這個包就可以很好的滿足

使用plsql操作oracle資料庫小技巧之儲存使用者名稱和密碼

每次plsql連線資料庫,輸入使用者名稱密碼很煩,直接點選儲存好的使用者名稱密碼: 步驟: 1、點選plsql的preferneces首選項,進入首選項視窗, 2、找到oracle項,下面有logon history,登入歷史, 3、點選登入歷史項,找到fixed U

jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位(轉)

來自網路,我在做生成excel的時候也遇到這個吐血問題。 jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位 處理: 出錯的原因是ResultSet用的是可滾動結果集,正常情況下ResultSet是指標指向資料庫的資料,本身是不儲

Oracle 跨使用者表間資料操作(觸發器實現)

需求:     使用者hfxcroad中有一個表P_TABLE,建立表語句如下:    create table P_TABLE    (        ID varchar2(50) default

ORACLE資料庫誤操作執行了DELETE,該如何恢復資料

作為一個程式設計師,資料庫操作是必須的,但是如果操作失誤,一般都會造成比較嚴重的後果。 今天一不小心,幹了一件揪心的事情,將正在使用的組織機構誤操作執行了delete,頓時大腦有點缺氧,感覺蒙圈了(相信對於沒有資料備份和回滾經驗的小夥伴來說都是這樣的感受),但是一想,資料庫

express中用mongoose操作資料庫-儲存圖片、修改資料(四)

從專案的角度上來說,圖片儲存和資料庫儲存都是必須要分離的,否則這一個模組就能拖垮你的整個工程。 二進位制的儲存方式,已經淘汰了,效能非常差,在以後的資料庫版本里已經取消了這個儲存方式。存放路徑,是一種非常方便的解決方案,不存在什麼其他的問題,容易管理。比如,你以前用二進位制儲

【Redis快取機制】3.key操作

我們之前使用Redis簡單儲存了三個引數: 在語句set name jack中,其中name就是一個key。我們Java中的變數名是有一定規則的, 比如組成內容可以是“數字”,“字母”以及“下劃線”。 同理,key也有自己的命名規則: 在Redis中,除了"\n"和空格不能

Oracle Form開發之folder(資料夾)功能開發(一)

一、模板製作:YSFOLDER.FMB 開啟TEMPLATE.FMB,如果開啟的是APPSTAND.FMB,以下步驟省略: 1、FORM級觸發器: 1、 在WHEN-NEW-FORM-INSTANCE後面新增以下程式碼: --定義資料夾資料塊 app_folder.defi

Oracle 資料操作常用指令

/*通過DOS匯出匯入資料*/ EXP hbean_data/[email protected]:1521/orcl file=E:hbean_data.DMP IMP hbean_data/[email protected] file=E:\hbean_

Oracle資料庫中資料操作和事務控制以及鎖

表資料的操作(DML):     插入:     修改:     刪除:     合併:大資料操作的時候,資料倉庫      插入:使用values只能插入一行資料     插入空值:         1)不寫         2)插入空串         3)null

2016/6/21--網頁點選儲存按鈕資料存到資料庫

——今天實現的功能是前臺表單上的儲存按鈕,將資料存到資料庫中。 貼幾段關鍵的程式碼: .jsp <span style="font-size:14px;"><form action="${ctx}/db5q/saveAddChild.do" metho

四、Oracle學習筆記:DML資料操作語句

二、DML語句學習     1.insert: 向表中插入資料 --格式: insert into tname(colName,colName....) values(value1,value2,....); or insert into tname value

C#呼叫Oracle帶輸出資料集的儲存過程

1、建立一個帶輸出資料集的Oracle儲存過程 create or replace procedure PRO_test(in_top in number,cur_out out sys_refcursor) is --查詢指定記錄條數的資料,並返回總共記錄數,返回多個