- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 存储过程和触发器 Oracle实用教程(第3版)PPT
7.3.1 事务的概念 下面使用一个简单的例子来帮助理解事务。向公司数据库添加一名新的雇员(见图7.4)。这里的过程由三个基本步骤组成:在雇员数据库中为雇员创建一条记录;为雇员分配部门;建立雇员的工资记录。如果这三步中的任何一步失败,如为新成员分配的雇员ID已经被其他人使用或者输入到工资系统中的值太大,系统就必须撤销在失败之前所有的变化,删除所有不完整记录的踪迹,避免以后的不一致和计算失误。 在形式上,事务是由ACID属性标识的。ACID是一个简称,每个事务的处理必须满足ACID原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 Oracle中的事务是隐式自动开始的,不需要用户显式的使用语句来开始一个事务。当发生如下事件时,事务就自动开始了。 (1)连接到数据库,并开始执行第一条DML语句; (2)前一个事务结束或者执行一条自动提交事务的语句。 发生如下事件时,Oracle认为事务结束。 (1)用户执行COMMIT语句提交事务,或者执行ROLLBACK语句撤销了事务; (2)用户执行了一条DDL语句,如CREATE、DROP或ALTER语句; (3)用户执行了一条DCL语句,如GRANT、REVOKE、AUDIT、NOAUDIT等; (4)用户断开与数据库的连接,这时用户当前的事务会被自动提交; (5)执行DML语句失败,这时当前的事务会被自动回退。 1.提交事务 使用COMMIT命令提交事务以后,Oracle会将DML语句对数据库所做的修改永久性的保存到数据库中。在使用COMMIT提交事务时,Oracle会执行如下操作。 (1)在回退段的事务表内记录这个事务已经提交,并且生成一个唯一的系统改变号(SCN)保存到事务表中,用于唯一标识这个事务。 (2)启动LGWR后台进程,将SGA区重做日志缓存在的重做记录写入联机重做日志文件,并且将该事务的SCN也保存到联机重做日志文件中。 (3)释放该事务中各个SQL语句所占用的系统资源。 (4)通知用户事务已经成功提交。 【例7.14】 使用INSERT语句向XSB表插入一行数据,并使用COMMIT提交事务。 首先启动SQL*Plus,连接数据库,使用INSERT语句: INSERT INTO XSB(XH, XM, XB, CSSJ, ZY, ZXF) VALUES(091101, 刘明, 男,TO_DATEYYYYMMDD), 计算机, 48); 之后使用SELECT语句查询刚刚插入的那行数据: SELECT XH, XM, XB, CSSJ, ZY, ZXF FROM XSB WHERE XH=091101; 执行结果如图7.5所示。 现在打开另一个SQL*Plus,保持第一个SQL*Plus不被关闭。使用相同的用户账号连接数据库,执行同样的查询,结果如图7.6所示。 这时可以发现,由于第一个会话没有提交事务,所以在第二个会话中看不到第一个会话中新添加的数据。所以需要在第一个SQL*Plus中执行COMMIT语句来提交事务: COMMIT; 2.回退全部事务 如果对数据库修改的过程中用户不打算保存对数据所做的修改,可以使用ROLLBACK语句回退整个事务,将数据库的状态回退到上一个提交成功的状态。 语法格式: ROOLBACK; Oracle通过回退段(或撤销表空间)存储数据修改前的数据,通过重做日志记录对数据库所做的修改。如果回退整个事务,Oracle将执行以下操作。 (1)Oracle通过使用回退段中的数据撤销事务中所有SQL语句对数据库所做的修改。 (2)Oracle服务进程释放事务所使用的资源。 (3)通知用户事务回退成功。 3.回退部分事务 设置保存点使用SAVEPOINT语句来实现,语法格式: SAVEPOINT spname; 其中,spname为保存点的名称。 如果要回退到事务的某个保存点,则使用ROLLBACK TO语句,语法格式: ROLLBACK TO [SAVEPOINT] spname ROLLBACK TO spname语句只会回退用户所做的一部分操作,事务并没有结束。直到使用COMMIT或ROLLBACK命令以后,用户的事务处理才算结束。 如果回退部分事务,Oracle将执行以下操作。 (1)Oracle通过使用回退段中的数据,撤销事务中保存点之后的所有更改,但保存保存点之前的更改。 (2)Oracle服务进程释放保存点之后各个SQL语句所占用的系统资源,但保存保存点之前各个SQL语句所占用的系统资源。 (3)通知用户回退到保存点的操作成功。 (4)用户可以继续执行当前的事务。 【例7.15】 向XSCJ数据库的XS
您可能关注的文档
- 第6章串级控制系统 过程控制系统[李国勇][电子教案].ppt
- 第6章华中世纪星数控铣床的编程 数控编程技术教学课件.ppt
- 第6章动态规划 运筹学课件.doc
- 第6章双变量回归分析的 计量经济学-古扎拉蒂 教学课件.ppt
- 第6章合同履行 合同法 教学课件.ppt
- 第6章城市、古建筑与工程 中国旅游地理 教学课件.ppt
- 第6章定向测量 测量学 课件.ppt
- 第6章图形界面设计 java语言基础自考教学课件.ppt
- 第6章房地产投资估算与融资方案 房地产投资分析 教学课件.ppt
- 第6章抽样设计 市场调查课件.ppt
- 第7章 建筑内部装修防火设计 (NXPowerLite) 建筑防火设计PPT.ppt
- 第7章 房地产开发项目的资金筹措与风险防范.ppt
- 第7章 性能监测与灾难保护、故障恢复 网络管理与应用 教学课件.ppt
- 第7章 建筑工程预算工程量的计算 工程估价课件.ppt
- 第7章 数字签字和密码协议 现代密码学教案.ppt
- 第7章 应用VHDL语言方法设计具有换挡功能的四位数字频率计 《EDA技术》PPT 教学课件.ppt
- 第7章 数据查询与显示 《数据库应用技术——Delphi应用系统开发》课件 电子教案.ppt
- 第7章 文字处理 Illustrator平面设计简明教程 教学课件.ppt
- 第7章 旅游服务次序礼仪 旅游服务礼仪 教学课件.ppt
- 第7章 有压隧洞围岩应力与稳定性 水电工程地质岩体力学课件 ppt.ppt
文档评论(0)