oracle之临时表

参考资料
1 Oracle 临时表用法
[url]http://www.iteye.com/topic/371390[/url]
2 oracle临时表学习
[url]http://shmily-zjl.iteye.com/blog/670458[/url]
3 oracle临时表的用法总结
[url]http://fangrn.iteye.com/blog/567191[/url]
4 oracle中创建临时表方法
[url]http://blog.sina.com.cn/s/blog_7f8a215d0100uuan.html[/url]
一 Oracle 临时表,可以有两种类型的临时表
[b]1 会话级的临时表[/b]
保存当前会话(session)用到的数据,数据会话期间存在,每次提交后ORACLE将截断表(删除全部行),两个不同的session所插入的数据互不相干
[b]2 事务级的临时表[/b]
保存当前事务用到的数据,数据只在事务期间存在,当中断会话时ORACLE将截断表。会话的数据对于当前会话私有,每个会话只能看到并修改自己的数据,DML锁不会加到临时表的数据上.
二 创建语法
1 SESSION级临时表

create global temporary table temp_tbl(col_a varchar2(30))
on commit preserve rows

2 TRANSACTION级临时表

create global temporary table temp_tbl(col_a varchar2(30))
on commit delete rows

这二种表插入与查询与其它表的方式是一样的
三 两种类型临时表的区别
[b]会话级临时表采用 on commit preserve rows ;而事务级则采用 on commit delete rows ;用法上,会话级别只有当会话结束临时表中的数据才会被截断,而且事务级临时表则不管是 commit 、 rollback 或者是会话结束,临时表中的数据都将被截断[/b]
四 存储过程中创建

create procduce test
is
isql varchar2(200);
dptable varchar2(100):='drop table test';
begin
isql:='create global temporary table test (sid int,sname varchar2(20)) on commit delete rows;
execute immediate isql; --创建临时表
insert into test values (1,'abc');
execute immediate dptable; ---删除临时表
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值