1、会话级别临时表
会话级别临时表是指临时表中的数据只在会话生命周期中,当用户结束会话是,oracle会自动清除临时表的数据。
create GLOBAL Temporary table RNG(
name varchar(22),
age num(10)
)
on commit preserve rows;
insert into RNG (name,age) values(uzi,20);
select * from RNG;
此时我们可以查询到表中的结果,当我们插入数据,然后执行commit和rollback,(这就是on commit preserve rows的作用)数据还是可以查到。但是仅限于当前会话,新建会话就查询不到表的数据。
2、事务级临时表
create GLOBAL Temporary table OMG(
name varchar(22),
age num(10)
)
on commit delete rows;
insert into RNG (name,age) values(uzi,20);
select * from OMG;
当我们插入数据后,在不提交的commit的情况是可以查询到的,但当事务结束(commit or rollback ),数据就会自动清除; 如果不写on commit delete rows; oralce会认为是事务级会话;
|