Home >Database >Mysql Tutorial >Oracle存储过程中临时表的使用技巧

Oracle存储过程中临时表的使用技巧

WBOY
WBOYOriginal
2016-06-07 17:30:021196browse

在Oracle中,临时表分为SESSION、TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION;而 TRANSA

一、Oracle临时表知识   

在Oracle中,临时表分为SESSION、TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION;而 TRANSACTION级的临时表数据在TRANACTION结束后消失,即COMMIT/ROLLBACK或结束SESSION都会清除 TRANACTION临时表数据。

1) 会话级临时表 示例

1创建

create global temporary table temp_tbl(col_a varchar2(30))

on commit preserve rows

2插入数据

insert into temp_tbl values('test session table')

3提交

commit;

4查询

select *from temp_tbl

可以看到数据'test session table'记录还在。

结束SESSION,重新登录,再查询数据select *from temp_tbl,这时候记录已不存在,因为系统在结束SESSION时自动清除记录 。

2) 事务级临时表 示例

1创建

create global temporary table temp_tbl(col_a varchar2(30))

on commit delete rows

2插入数据

insert into temp_tbl values('test transaction table')

3提交

commit ;

4查询

select *from temp_tbl

这时候可以看到刚才插入的记录'test transaction table'已不存在了,因为提交时已经晴空了数据库;同样,如果不提交而直接结束SESSION,重新登录记录也不存在 。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn