Oracle数据库开发实用教程第十一章.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据库开发实用教程第十一章

如果用户确定要删除表中所有记录,则建议使用TRUNCATE语句。使用TRUNCATE语句删除表中记录的语法为: TRUNCATE TABLE table_name; 例27:删除emp_clerk表中的所有记录。语句为: TRUNCATE TABLE emp_clerk; 事务控制 事务概述 事务的性质包括如下几个: 1.原子性(Atomicity):即不可分割性,事务要么全部被执行,要么就全部不被执行。如果事务的所有子事务全部提交成功,则所有的数据库操作被提交,数据库状态发生转换;如果有子事务失败,则其他子事务的数据库操作被回滚,即数据库回到事务执行前的状态,不会发生状态转换。 2.一致性(Consistency):事务的执行使得数据库从一种一致性状态转换成另一种一致性状态。 3.隔离性(Isolation):在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,即在事务正确提交之前,它可能的结果不应显示给任何其他事务。 4.持久性(Durability):事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。 事务控制 Oracle事务管理 1.事务的设置 Oracle数据库中允许事务的并发运行,可能导致4个问题: 更新丢失:当系统允许两个事务同时更新同一数据时,发生更新丢失。 脏读:当一个事务读取另一个事务尚未提交的修改时,产生脏读。 非重复读:同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。 幻像:同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。 为了解决上述问题,Oracle数据库支持对事务的隔离等级进行设置和修改。事务的隔离级别指的是一个事务对数据库的修改与并行的另一个事务的隔离程度。 (1) 提交读(READ COMMITED) 这是ORACLE缺省的事务隔离级别。用于设置语句级的一致性。事务中的每一条语句都遵从语句级的读一致性。该隔离级别保证不会脏读;但可能出现非重复读和幻像。在该级别的事务中可以执行DML操作。 (2) 串行化(SERIALIZABLE) 简单地说,串行化就是使事务看起来像是一个接着一个地顺序执行。仅仅能看见在本事务开始前由其它事务提交的更改和在本事务中所做的更改。该隔离级别保证不会出现非重复读和幻像。串行化隔离级别提供了只读事务所提供的读一致性(事务级的读一致性),同时又允许DML操作。如果有在串行化事务开始时未提交的事务在串行化事务结束之前修改了串行化事务将要修改的行并进行了提交,则串行化事务不会读到这些变更,因此发生无法序列化访问的错误。 (3) 只读(READ-ONLY) 遵从事务级的读一致性,仅仅能看见在本事务开始前由其它事务提交的更改。不允许在本事务中进行DML操作。只读是串行化的子集。它们都避免了非重复读和幻像。区别是在只读中只能进行查询;而在串行化中可以进行DML操作。 2.事务提交 当一个事务开始时,Oracle 为此事务分配一个可用的撤销表空间来记录其产生的回滚条目。 一个事务在满足以下条件之一时结束: 用户提交了 COMMIT 语句,或不包含保存点子句的 ROLLBACK 语句。 用户执行了 CREATE,DROP,RENAME,或 ALTER 等 DDL 语句。如果当前事务中包含 DML 语句,那么 Oracle 首先提交此事务,然后将 DLL 语句作为一个只包含一条 SQL 语句的新事务运行并提交。 用户断开了与 Oracle 的连接。当前事务将被提交。 用户进程异常结束。则当前事务被回滚。 当一个事务结束后,下一个可执行的 SQL 语句将会自动地开始一个新事务。 3.事务回滚 回滚的含义是撤销一个未提交事务中已执行的 SQL 语句对数据的修改。Oracle使用撤销表空间(或回滚段)来存储被修改的数据的原始值。而重做日志内则保存了对数据修改操作的记录。 用户可以使用ROLLBACK命令回滚整个未提交事务。执行该命令后,事务中的所有操作都被取消,数据库恢复到事务开始之前的状态,同时事务所占用的系统资源和数据库资源被释放。除此之外,用户还可以部分回滚未提交事务,即从事务的最末端回滚到事务中任意一个之前设置的保存点(savepoint)处。保存点是用户在事务内使用SAVEPOINT语句设置的标记,可以将一个大的事务划分为若干较小的片段 SQL函数 字符类函数 数值类函数 日期类函数 转换类函数 其他函数 字符类函数 函数 说明 ASCII(c) 返回字符串c的首字符的ASCII码值 CHR(n) 返回十进制ASCII码n对应的字符 CONCAT(c1,c2) 返回将字符串c2

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档