| 飞 的个人资料二月飞雪日志列表留言簿 | 帮助 |
|
12月26日 关于Oracle的临时表Oracle的临时表跟Sql Server的临时表有很大的不同,Sql Server的临时表用完就没了,而Oracle的临时表是实际存在的,就是说它的结构不是临时的,而数据时临时的,一般是先创建后使用,它的数据有两种临时特性,一种是Transaction级别的,Transaction一结束,这次Transaction所插入的数据就没有了,另一种是Session级别的,直到Session消失,它所插入的数据都一直存在。今天Zaza在实验Oracle的临时表的时候发现一个奇怪的现象,就是:
1、Create Global Temporary Table t1 on commit delete rows
As
Select * From t;
2、Create Global Temporary Table t2 on commit preserve rows
As
Select * from t;
第一种方法创建临时表t1后,发现select * from t1没有记录,而第二种方法创建临时表t2后,发现select * from t2是有记录的,难道Create Table t As Select这种建表方法本身就包含了一笔Transaction吗?我想应该是的,不然不会出现以上的情况,我就这个问题和自己的理解请教了我在Oracle University培训时的讲师,没能得到肯定完整的答复,不过我基本确定我的理解应该是正确的:) 引用通告此日志的引用通告 URL 是: http://wonphy.spaces.live.com/blog/cns!22042D05BB497C1A!295.trak 引用此项的网络日志
|
|
|