国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 9i 事務處理

2024-08-29 13:32:08
字體:
來源:轉載
供稿:網友
   事務是oracle 9i中進行數據庫操作的基本單位,在pl/sql程序中,可以使用3個事務處理控制命令。

commit命令

    commit是事務提交命令。在oracle 9i數據庫中,為了保證數據的一致性,在內存中將為每個客戶機建立工作區,客戶機對數據庫進行操作處理的事務都在工作區內完成,只有在輸入commit命令后,工作區內的修改內容才寫入到數據庫上,稱為物理寫入,這樣可以保證在任意的客戶機沒有物理提交修改以前,別的客戶機讀取的后臺數據庫中的數據是完整的、一致的,如圖9.26所示。

    在【sqlplus worksheet】中可以執行下列pl/sql程序打開自動提交功能。這樣每次執行pl/sql程序都會自動進行事務提交。執行結果如圖9.27所示。
    ―――――――――――――――――――――――――――――――――――――
    set auto on;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/setautocommiton.sql。

    相應的,取消自動提交功能的pl/sql程序如下。
    ―――――――――――――――――――――――――――――――――――――
    set auto off;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/setautocommitoff.sql。

rollback命令

    ollback是事務回滾命令,在尚未提交commit命令之前,如果發現delete、insert和update等操作需要恢復的話,可以使用rollback命令回滾到上次commit時的狀態。
    下面以delete命令為例演示如何回滾。
    (1)首先關閉自動提交功能。
    (2)在【sqlplus worksheet】中執行下列sql程序,查看scott.emp數據表中的所有數據,執行結果如圖9.28所示。
    ―――――――――――――――――――――――――――――――――――――
    select * from scott.emp;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/selectemp.sql。

    (3)在【sqlplus worksheet】中執行下列sql程序,刪除scott.emp數據表中的所有數據。執行結果如圖9.29所示。
    ―――――――――――――――――――――――――――――――――――――
    delete from scott.emp;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/deleteemp.sql。

    (4)在【sqlplus worksheet】中執行下列sql程序,查詢刪除數據表scott.emp后的結果。執行結果如圖9.30所示。
    ―――――――――――――――――――――――――――――――――――――
    select * from scott.emp;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/selectemp.sql。

    (5)在【sqlplus worksheet】中執行以下sql程序,完成事務的回滾。執行結果如圖9.31所示。
    ―――――――――――――――――――――――――――――――――――――
    rollback;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/rollbackemp.sql。

    (5)在【sqlplus worksheet】中執行selectemp.sql文件,執行結果如圖9.28所示,表明成功回滾了事務。

savepoint命令

    savepoint是保存點命令。事務通常由數條命令組成,可以將每個事務劃分成若干個部分進行保存,這樣每次可以回滾每個保存點,而不必回滾整個事務。語法格式如下。
    創建保存點:savepoint 保存點名;
    回滾保存點:rollback to 保存點名;
    下面介紹如何使用保存點。
    (1)在【sqlplus worksheet】中執行以下sql程序,程序完成向scott.emp數據表中插入一條記錄。執行結果如圖9.32所示。
    ―――――――――――――――――――――――――――――――――――――
    insert into scott.emp(empno,ename,sal) values(9000,'wang',2500);
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/insertemp.sql。

    (2)在【sqlplus worksheet】中執行下列sql代碼,完成創建保存點的操作。執行結果如圖9.33所示。
    ―――――――――――――――――――――――――――――――――――――
    savepoint insertpoint;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createsavepoint.sql。

    (3)在【sqlplus worksheet】中可以執行其他的sql語句。
    (4)在【sqlplus worksheet】中執行下列sql代碼,程序完成回滾到指定的保存點“insertpoint”。執行結果如圖9.34所示。
    ―――――――――――――――――――――――――――――――――――――
    rollback to insertpoint;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ rollbacksavepoint.sql。

    (5)可以執行selectemp.sql文件,查詢回滾前后的數據。
上一篇:Oracle 9i 游標

下一篇:Oracle 9i 審計

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正安县| 德昌县| 常宁市| 页游| 高州市| 晋城| 乡宁县| SHOW| 左贡县| 涞源县| 吴堡县| 汉中市| 资中县| 西安市| 桃园县| 鄂托克前旗| 喀什市| 霞浦县| 阿克苏市| 霍城县| 西和县| 绥芬河市| 临汾市| 桦川县| 邻水| 三门县| 伽师县| 长寿区| 鄂托克前旗| 通榆县| 万州区| 鞍山市| 吉水县| 鹰潭市| 承德市| 安阳市| 株洲县| 陇南市| 金平| 朝阳区| 灌南县|