Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 临时表

在Oracle8i或以上版本中,可以创建以下两种临时表:
1.会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT PRESERVE ROWS;
2.事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT DELETE ROWS; 但是对比DB2,Oracle的临时表有着很大的却别。
就像是JSP一样,Oracle的临时表是存放在application的。
也就是说,所有的存储过程都能够访问这个临时表。
其实,临时表就像是普通的表一样。 而在DB2,临时表前面会有SESSION.XX_TMP_TBL
无论你怎么搞这个临时表,都是存在SESSION里面。
而且每个存储过程内部可以构建和删除这样的临时表,相互独立。 对比Oracle,使不能在SP(存储过程)里面使用DDL。
也就是CREATE TABLE,CREATE INDEX这样的。 补充一点,DB2的临时表和Oracle的临时表上面都可以构建索引,INDEX。
但是DB2是SESSION.INDEX。
而Oracle使用的是普通的INDEX声明。 Oracle中可以对临时表创建索引,视图,出发器,可以用export和import工具导入导出表的定义,但是不能导出数据。表的定义对所有的会话可见。 创建时:
  1. CREATE GLOBAL TEMPORARY TABLE QCUI_Temp_Trans    
  2.  ON COMMIT DELETE ROWS    
  3.  AS    
  4.  SELECT * FROM t_Department  
删除时: DROP TABLE QCUI_Temp_Trans   在MongoDB中实现聚合函数Oracle 查询树形所有节点名称相关资讯      Oracle临时表 
  • Oracle中的临时表、外部表和分区表  (03/02/2015 13:36:40)
  • 被Oracle全局临时表坑了  (10/20/2014 18:40:25)
  • Oracle 11g在线收回临默认临时表空  (01/09/2014 17:35:29)
  • Oracle 锁定临时表统计信息及锁住  (11/21/2014 13:58:20)
  • 使用Oracle基于session的临时表要  (10/20/2014 18:37:20)
  • Oracle数据库临时表空间问题  (11/11/2013 18:36:18)
本文评论 查看全部评论 (0)
表情: 姓名: 字数