Oracle创建临时表

Oracle创建临时表,第1张

Oracle临时表

临时表是一种特殊的表。当需要对某一(也可以是多个)表中的一批数据进行反复的 *** 作时,通过为这批数据创建一个临时表,可能会简化 *** 作并且有可能提高效率。

语法:
CREATE GLOBAL TEMPORARY TABLE 临时表空间名
ON COMMIT DELETE ROWS 
ON COMMIT PRESERVE ROWS
(colum,colum,);

子句说明:

ON COMMIT DELETE ROWS
(说明数据行只有在当前事务中可见,也是默认值,事务提交后数据行将消失)ON COMMIT PRESERVE ROWS :(说明数据行仅在当前会话中可见)

实例:
使用ON COMMIT PRESERVE ROWS根据emp_tran表创建一个仅当前会话可见的临时表

CREATE GLOBAL TEMPORARY TABLE 
emp_temp
ON COMMIT PRESERVE ROWS
AS SELECT * FROM emp_tran;
Table created.

查询验证:

SQL> select * from emp_temp;
     EMPNO ENAME				JOB 	        SAL
---------------- ------------------ --------------------
      7369 SMITH		      CLERK            3500
      7876 ADAMS			  CLERK   	   	   3500
      7900 JAMES		      CLERK            2000
3 rows selected.

查询验证临时表是否使用表空间:

SELECT table_name, tablespace_name, temporary FROM dba_tables WHERE owner = 'NICE';

TABLE_NAME		       TABLESPACE_NAME	      TEMPORARY
---------- --------------------------- ------------------
……
EMP_TEMP						                    Y
CLASSINFO		       DATA_TABLEONE		        N
8 rows selected.
SQL>

结果显示:表emp_temp为临时表,因为最后一列值为Y,而该表也没有放在该用户默认表空间USERS中,所以该临时表表使用的是临时段。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/991705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存