Oracle 多版本控制
SESSION 1: SQL> create table t
2 as
3 select * from all_users; Table created. SQL> variable x refcursor
SQL> begin
2 open :x for select * from t;
3 end;
4 / PL/SQL procedure successfully completed. SESSION 2: SQL> delete from t; 37 rows deleted. SQL> commit; Commit complete. SESSION 1: SQL> print x USERNAME USER_ID CREATED
------------------------------ ---------- ---------
TEST 91 27-DEC-00
BI 90 07-NOV-00
PM 89 07-NOV-00
SH 88 07-NOV-00
IX 87 07-NOV-00
OE 86 07-NOV-00
HR 85 07-NOV-00
SCOTT 84 13-AUG-09
OWBSYS_AUDIT 83 13-AUG-09
OWBSYS 79 13-AUG-09
APEX_030200 78 13-AUG-09 USERNAME USER_ID CREATED
------------------------------ ---------- ---------
APEX_PUBLIC_USER 76 13-AUG-09
FLOWS_FILES 75 13-AUG-09
MGMT_VIEW 74 13-AUG-09
SYSMAN 72 13-AUG-09
SPATIAL_CSW_ADMIN_USR 70 13-AUG-09
SPATIAL_WFS_ADMIN_USR 67 13-AUG-09
MDDATA 65 13-AUG-09
MDSYS 57 13-AUG-09
SI_INFORMTN_SCHEMA 56 13-AUG-09
ORDPLUGINS 55 13-AUG-09
ORDDATA 54 13-AUG-09 USERNAME USER_ID CREATED
------------------------------ ---------- ---------
ORDSYS 53 13-AUG-09
OLAPSYS 61 13-AUG-09
ANONYMOUS 46 13-AUG-09
XDB 45 13-AUG-09
CTXSYS 43 13-AUG-09
EXFSYS 42 13-AUG-09
XS$NULL 2147483638 13-AUG-09
WMSYS 32 13-AUG-09
APPQOSSYS 31 13-AUG-09
DBSNMP 30 13-AUG-09
ORACLE_OCM 21 13-AUG-09 USERNAME USER_ID CREATED
------------------------------ ---------- ---------
DIP 14 13-AUG-09
OUTLN 9 13-AUG-09
SYSTEM 5 13-AUG-09
SYS 0 13-AUG-09 37 rows selected. 在前面的例子中,我创建了一个测试表T,并把ALL_USERS 表的一些数据加载到这个表中。然后在这
个表上打开一个游标。在此没有从该游标获取数据,只是打开游标而已。 要记住,Oracle 并不“回答”这个查询。打开游标时,Oracle 不复制任何数据,你可以想想看,
即使一个表有十亿条记录,是不是也能很快就打开游标?没错,游标会立即打开,它会边行进边
回答查询。换句话说,只是在你获取数据时它才从表中读数据。 在同一个会话中(或者也可以在另一个会话中;这同样能很好地工作),再从该表删除所有数据。甚
至用COMMIT 提交了删除所做的工作。记录行都没有了,但是真的没有了吗?实际上,还是可以通过游标获
取到数据。OPEN 命令返回的结果集在打开的那一刻(时间点)就已经确定。打开时,我们根本没有碰过表
中的任何数据块,但答案已经是铁板钉钉的了。获取数据之前,我们无法知道答案会是什么;不过,从游
标角度看,结果则是固定不变的。打开游标时,并非Oracle 将所有数据复制到另外某个位置;实际上是
DELETE 命令为我们把数据保留下来,把它放在一个称为undo 段(undo segment)的数据区,这个数据区
也称为回滚段(rollback segment)。
Oracle 多版本控制的更多相关文章
- 微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient 以及Oracle 的各种连接方法
这是微软官方 ADO.NET Team Blog 去年就公布的消息: http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracl ...
- 微軟将弃用 System.Data.OracleClient
http://www.cnblogs.com/WizardWu/archive/2010/05/17/1737009.html 微軟将从 .NET 4 以后的版本弃用 System.Data.Orac ...
- [转帖]微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient
转帖--微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient Posted on -- : eaglet 阅读() 评论() 编辑 收藏 原贴 http://www ...
- Oracle并发与多版本控制
1.什么是并发 2.事务隔离级别 2.1 READ UNCOMMITTED 2.2 READ COMMITTED 2.3 REPETABLE READ 2.4 SERIALIZ ...
- oracle undo回滚段详解
1.Undo是干嘛用的? 在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个 ...
- Oracle事务之一:锁和隔离
Oracle事务之一:锁和隔离 一. 事务概述 事务管理是数据库处理的核心.数据库既要保证用户能并发地执行事务,还要保证数据库的一致性. 当第一条可执行的SQL开始执行,就隐形地开始了一个事务,直到遇 ...
- 【转修正】sql server行版本控制的隔离级别
在SQL Server标准的已提交读(READ COMMITTED)隔离级别下,一个读操作会和一个写操作相互阻塞.未提交读(READ UNCOMMITTED)虽然不会有这种阻塞,但是读操作可能会读到脏 ...
- Oracle和sqlserver关于锁和隔离级别的差异
事务属性:ACID(原子性.一致性.隔离性.持久性) 隔离级别:主要针对的是共享锁的持有时间和范围 SQL标准定义了以下四种事务隔离级别 READ UNCOMMITTED 允许脏读. 不可重 ...
- sqlserver快照,启用基于行版本控制的隔离级别
在sqlserver标准的已提交读(read committed)隔离级别下,读写操作相互阻塞.未提交读(read uncommitted)虽然不会有这种阻塞,但是读操作可能会读到脏数据,这是大部分用 ...
随机推荐
- 我开启httpd服务的时候 显示Could not reliably determine the server`s fully qualified domain name,
vi /etc/httpd/conf/httpd.conf加入一句 ServerName localhost:80
- block没那么难(三):block和对象的内存管理
本系列博文总结自<Pro Multithreading and Memory Management for iOS and OS X with ARC> 在上一篇文章中,我们讲了很多关于 ...
- 关于oracle的函数,存储过程,触发器,序列,视图,左右连接一些的应用 带案例
CREATE TABLE STUDENT( --创建学生表 ID NUMBER(10) PRIMARY KEY, --主键ID NAME VARCHAR2(20), CLASSNAME VA ...
- 关于echarts的使用----模块化单文件引入(推荐) 与标签式单文件引入
官网:http://echarts.baidu.com/echarts2/doc/doc.html#引入ECharts3 关于模块化单文件引入(推荐) 与标签式单文件引入
- C# 各种集合
大多数集合都在 System.Collections,System.Collections.Generic两个命名空间. 其中System.Collections.Generic专门用于泛型集合. ...
- padding and margin.
padding is the space between the content and the border, whereas margin is the space outside the bor ...
- Relative与Absolute组合使用
小伙伴们学习了绝对定位的方法:使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后, 大家有没有想过可不可以相对于其它元素进行定位呢?答案是肯定的,当然可以.使 ...
- JS入门笔记
DOM有四种节点: 1. 元素节点:即标签2. 属性节点:写在标签里的属性3. 文本节点:嵌在元素节点里展示出来的文本4. 文档节点:document 获取元素节点的三种常用方法: 1.ById 2. ...
- 【POJ2266】【树状数组+离散化】Ultra-QuickSort
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...
- 【SPOJ839】最优标号
[题目描述] 给你一张无向图G(V,E).每个顶点都有一个标号,它是一个[0,2^31-1]内的整数.不同的顶点可能会有相同的标号. 对每条边(u,v),我们定义其费用cost(u,v)为u的标号与v ...