码迷,mamicode.com
首页 > 数据库 > 详细

Oracle中的临时表

时间:2015-03-01 23:51:49      阅读:401      评论:0      收藏:0      [点我收藏+]

标签:

Oracle中的临时表

在Oracle中,临时表是“静态”的,它与普通的数据表一样只需要一次创建,其结构从创建到删除的整个期间都是有效的。相对于其他类型的表,临时表只有在用户实际向表中添加数据时,才会为其分配空间,并且分配的空间来自临时表空间。这就避免了与永久对象的数据争用存储空间。

创建临时表的语法如下:

CREATE GLOBAL TEMPORARY TABLE table_name(
    column_name data_type,[column_name data_type,...]
)ON COMMIT DELETE|PRESERVE ROWS;

由于临时表存储的数据只在当前事务处理或者会话进行期间有效
因此,临时表分为事务级临时表会话级临时表

事务级临时表

创建事务级临时表,需要使用ON COMMIT DELETE ROWS子句,事务级临时表的记录在每次提交事务后被自动删除。

例1:

CREATE GLOBAL TEMPORARY TABLE tbl_user_transcation(
       ID NUMBER,
       uname VARCHAR2(10),
       usex VARCHAR2(2),
       ubirthday DATE
)
ON COMMIT DELETE ROWS;

会话级临时表

创建会话级临时表,需要使用ON COMMIT PRESERVE ROWS子句,会话级临时表的记录在用户与服务器断开连接后被自动删除。

例2:

CREATE GLOBAL TEMPORARY TABLE tbl_user_session(
       ID NUMBER,
       uname VARCHAR2(10),
       usex VARCHAR2(2),
       ubirthday DATE
)
ON COMMIT PRESERVE ROWS;

操作临时表

Oracle中的临时表

标签:

原文地址:http://blog.csdn.net/u010999240/article/details/44007263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!