标签:
在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;
标签:
原文地址:http://blog.csdn.net/u010999240/article/details/44007263