2012事务.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用TC事务控制语言 事务概述 数据存储的逻辑单位是数据块,数据操作的逻辑单位是事务。数据库的一大特点就是数据共享,但数据共享必带来数据的安全问题。数据的安全保护措施是否有效是数据库的主要性能指标之一对数据的保护包两个方面内容: 防止非法用户的操作故意对数据库造成破坏如非法修改数据等。 防止合法用户的操作意外对数据库造成破坏如,防止逻辑关系的一组DML操作半途而废或由于并发存取而导致对数据一致性的破坏,由于更新数据而导致对数据完整性破坏或由于故障而导致数据破坏等。对于前者而言,可以使用用户管理、权限管理等方法控制;但对于后者而言,可以通过Oracle的事务来控制。根据ANSI/ISO SQL标准定义,事务是用户定义的一组操作序列,由一条或多条相关的SQL语句组成,是数据库应用程序的基本逻辑单位。 事务的开始与结束 Oracle的一个重要特点就是没有开始事务处理的语句用户不能也不必显式地开始一个事务处理。当发生下事件之一时,事务就开始了连接到数据库,并开始执行一条DMLUPDATE、INSERT、DELETE语句。 前一个事务结束或者执行一条会自动提交事务的语句。 当发生如下事件之一时,事务就结束了执行一条COMMIT(事务提交)ROLBACK(事务回滚)语句执行一条会自动提交事务的语句执行一条DML语句却失败了。 当发生以下情况时会自动提交事务执行一条DDL语句(如CREATE TABLE、ALTER TABLE等)执行一条DCL语句(如GRANT、REVOKE等)断开与数据库的连接。如在SQL*PLUS中执行一条命令,或在同一个SQL*PLUS中执行一条命令启动一个会话,或执行命令退出SQL*PLUS等。 使用COMMIT命令提交事务 在使用DML语句对数据库进行操作之后,如果要在数据库中永久性保存操作结果,就需要使用COMMIT命令来提交事务。提交成功之后,其他会话就可以查看到操作后的数据了。事务提交示例演示图1.2.图1.2.图1.2.图1.2.所示,会话A向emp表中插入一条记录在提交之前,另一个会话B查看到新记录在会话A提交事务之后,会话B才可以查看新增加的记录这实际上就是事务的隔离性。 图1.2.会话A向emp表中插入一条记录并未提交 图1.2.会话B查看emp表中的记录 图1.2.会话A提交事务 图1.2.会话B再次查看emp数据 使用ROLLBACK回滚事务 如果在对数据库的修改过程中出现了程序方面或数据库方面的错误,或用户不打算保存操作的结果,都可使用ROLLBACK命令回滚全部事务回滚可以终止用户的事务处理并撤销用户已经进行的所有更改其实现原理读取该事务保存在undo表空间中的撤销信息将数据库恢复到执行事务之前的状态图1.2.显示回滚事务的使用方法。 图1.2.回滚事务回滚部分事务 使用ROLLBACK TO SAVEPOINT spame或ROLLBACK TO spame命令来将事务回滚到保存点,或进行事务的部分回滚。 注意,ROLLBACK TO spname命令只会回滚用户所做的一部分操作。直到使用COMMIT或ROLLBACK命令后,用户的事务处理才算结束。使用ROLLBACK TO spname命令后,Oracle将保存点之后所有已经执行的更改,但保留保存点之前的更改。图1.2.在一个事务中设置保存点,先退回部分事务,然后提交事务。 图1.2.设置保存点 事务中的SQL语句只限于DML命令,DDL和DCL语句是不能被回滚的,因为这些命令会自动提交事务。 2. 回滚事务 1. 执行DML语句 DELETE语句被提交,语句被撤销了 3. 回滚保存点 2. 设置保存点 1. 执行DML操作

文档评论(0)

xqTDZJUaWh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档