什么是oracle的临时表??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是oracle的临时表??相关的知识,希望对你有一定的参考价值。

ORACLE数据库除了可以保存永久表外,还可以建立临时表。临时表是存储在临时表空间里面的,且不记录日志的,NOLOGGING的。
1.临时表可以创建临时的索引、视图、触发器
2.如果要DROP会话级别临时表,并且其中包含数据时,必须先截断其中的数据。否则会报错。
3.临时表不会有DML 锁
4.临时表不能永久的保存数据
5.不支持主外键关系
临时表有两种
1.会话级临时表
会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。

Create Global Temporary Table Table_Name
(
id number
name varchar2(20)
...
)
On Commit Preserve Rows;

2.事务级临时表
事务级临时表是指临时表中的数据只在事务生命周期中存在,当一个事务结束(commit or rollback),Oracle自动清除临时表中数据

Create Global Temporary Table Table_Name
(
id number
name varchar2(20)
...
)
On Commit Delete Rows;

注意:虽然临时表会在退出会话,或提交事务回滚事务后自动清除数据,但是临时表的结构以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除临时表,否则数据库会残留很多临时表的表结构和元数据。

以上是关于什么是oracle的临时表??的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中如何在储过程中使用临时表

oracle 存储过程,数据处理并返回结果集问题

Oracle临时表空间作用

Oracle临时表空间作用

Oracle中的临时表与全局临时表有啥区别?

oracle中别名的问题:在临时表中不能用as吗?