目录
临时表就是用来暂时保存数据(或者叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大的区别.他只能存储在临时表空间,而非用户的表空间.Oracle临时表是会话或事物级别的,只对当前会话或事物可见.每个会话只能查看和修改自己的数据.
Oracle数据库的临时表可以用来保存一个会话session的数据,或者一个事务中的数据.当查询语句非常的复杂时,我们就可以创建一个临时表保存查询结果,并进行一系列的操作.
创建临时表有两种方式:
会话级临时表是指表中的数据只会在会话周期中存在,当用户退出会话结束时,Oracle自动清除临时表中当前会话的数据.
执行commit或者rollback操作,表内的数据依然存在,新建一个窗口命令(相当于开启了一个新的会话),表内的数据就查询不到了
创建语法: create global temporary table 临时表名 ( 列名 数据类型, ... ) on commit preserve rows;
事物级临时表是指表中的数据只在事物的生命周期中存在,当事物结束(commit 或 rollback),Oracle自动清除临时表中的数据,继承会话临时表特点
创建语法: create global temporary table 临时表名 ( 列名 数据类型, ... ) on commit delete rows; 也可以直接: create global temporary table 临时表名 as (select结果集);--默认事物级临时表
注意事项