oracle的两种global temporary table!

1. on commit delete rows

2.on commit preserve rows

[@more@]

SQL> create global temporary table gt1 (id int) ;

表已创建。

SQL> insert into gt1 values(1);

已创建 1 行。

SQL> insert into gt1 values(2);

已创建 1 行。

SQL> select * from gt1;

ID
----------
1
2
SQL> commit;

提交完成。

SQL> select * from gt1;

未选定行

SQL> create global temporary table gt2 (id int) on commit delete rows ;

表已创建。

SQL> create global temporary table gt3 (id int) on commit preserve rows ;

表已创建。

SQL> insert into gt3 values(1);

已创建 1 行。
SQL> commit;

提交完成。

SQL> select * from gt3;

ID
----------
1

SQL> disconnect;
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
SQL> connect/ as sysdba
已连接。
SQL> select * from gt3;

未选定行
SQL> grant connect ,resource to test;

授权成功。

SQL> select * from gt3;

未选定行

SQL> insert into gt3 values(1);

已创建 1 行。

SQL> commit;

提交完成。

SQL> grant select on gt3 to test;

授权成功。
--=========================================
另一个session:

SQL> select * from sys.gt3;

未选定行

--==========================================

SQL> insert into gt1 values(1);

已创建 1 行。

SQL> select count(*) from v$transaction;

COUNT(*)
----------
1

SQL> select count(*) from v$locked_object ;

COUNT(*)
----------
0

SQL> rollback;

回退已完成。

SQL> select count(*) from v$transaction;

COUNT(*)
----------
0

SQL>

我们可以看出在通过dml操作temp table时也会开启事务,同样事务也需要commit或者rollback,但该事务却不对temp table进行lock,原因是不需要lock temp table,因为temp table的数据只能是当前session访问,类似于单用户操作temp table。但temp table的结构只要具备访问priv其他session都可以访问,我想正因为它的结构可以被其他session访问,所以oracle的temp table称为global temp table

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1006802/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/19602/viewspace-1006802/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值