参考文章:
http://www.iteye.com/topic/371390
临时表分为SESSION、TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION;
而TRANSACTION级的临时表数据在TRANACTION结束后消失,即COMMIT/ROLLBACK或结束SESSION都会清除TRANACTION临时表数据。
1. 会话级临时表
create global temporary table tm_session(
msg varchar2(100)
) on commit preserve rows;
create global temporary table 是固定的写法,
on commit preserve rows 表示是会话级临时表
插入下数据
insert into tm_session(msg) values('hello temp session!');
查询下数据
select *from tm_session;
执行commit操作后,依然可以查询出数据,但是,关掉改会话后,就没有数据了。
2. 事务级临时表
---2.事务级临时表
create global temporary table tm_trasaction(
msg varchar2(100)
) on commit delete rows;
on commit delete rows 表示是事务级临时表
插入一条记录:
insert into tm_trasaction(msg) values('hello temp transaction!');
执行commit操作后(提交事务),再查询,数据已经没有了。