转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
Oracle 9i 事务处理         ★★★★

Oracle 9i 事务处理

作者:闵涛 文章来源:闵涛的学习笔记 点击数:846 更新时间:2009/4/22 22:00:07


    事务是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文件,查询回滚前后的数据。




[系统软件]EXP-00008: ORACLE error 904 encountered的解决方…  [常用软件]PB7 连接 Oracle 的配置方法
[Web开发]oracle Export and Import 简介  [Web开发]ADO访问Oracle结果集的心得
[JAVA开发]JDBC+Hibernate将Blob数据写入Oracle  [JAVA开发]Java中数据库事务处理的实现
[JAVA开发]J2EE应用中与Oracle数据库的连接  [JAVA开发]Oracle Application Serve_
[其他]HP-UXrx2600B.11.22Uia64安装oracle9i9.2foria64手…  [其他]在RedhatEnterpriseserver3上安装oracle9iR2的注意…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台