惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
IT之家
IT之家
博客园 - 聂微东
The Cloudflare Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
H
Help Net Security
博客园 - 叶小钗
V
V2EX
WordPress大学
WordPress大学
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
C
Check Point Blog
B
Blog
D
DataBreaches.Net
美团技术团队
罗磊的独立博客

博客园 - 每天都有进步

eclipse安装flex插件 eclipse运行错误 Version 1.3.1_01 of the JVM is not suitable for this product.Version:1.4.1 or greater is required SQL Server CE的安装 ArcGIS Server 9.3安装流程 在新公司工作一个月了 十个故事(从故事中看出创业必备的精神)(转) 回去了 过年回家了 [FLEX]自定义格式化DataGrid的列值 (转) 经济周期的四个阶段 出差再出差 都说四川美女多 08年10月30日,到了成都 240多个jQuery插件 (转) 会过去的 又开始上班了 明天放假了 懂了 构造函数,析构函数
Oracle的临时表
每天都有进步 · 2009-06-19 · via 博客园 - 每天都有进步

在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;


ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。


ON COMMIT DELETE ROWS 表名行只是在事务期间可见 

ON COMMIT PRESERVE ROWS 表名行在整个会话期间可见

建立临时表
   临时表的定义对所有会话SESSION都是可见的,但是表中的数据只对当前的会话或者事务有效.
   建立方法:
1) ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法.
CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         class CHAR(20))
      ON COMMIT DELETE ROWS;
例:
SQL> CREATE GLOBAL TEMPORARY TABLE admin_work_area
  2          (startdate DATE,
  3           enddate DATE,
  4           class CHAR(20))
  5        ON COMMIT DELETE ROWS;
SQL> create table permernate( a number);
SQL> insert into admin_work_area values(sysdate,sysdate,'temperary table');
SQL> insert into permernate values(1);
SQL> commit;
SQL> select * from admin_work_area;
SQL> select  * from permernate;
A
1
2)ON COMMIT PRESERVE ROWS 定义了创建会话级临时表的方法.
CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         class CHAR(20))
     ON COMMIT PRESERVE ROWS;
例:
会话1:
SQL> drop table admin_work_area;
SQL> CREATE GLOBAL TEMPORARY TABLE admin_work_area
  2          (startdate DATE,
  3           enddate DATE,
  4           class CHAR(20))
  5       ON COMMIT PRESERVE ROWS;
SQL> insert into permernate values(2);
SQL> insert into admin_work_area values(sysdate,sysdate,'session temperary');
SQL> commit;
SQL> select * from permernate;
         A
----------
         1
         2
SQL> select * from admin_work_area;
STARTDATE  ENDDATE    CLASS
---------- ---------- --------------------
17-1?? -03 17-1?? -03 session temperary
会话2:
SQL> select * from permernate;
         A
----------
         1
         2
SQL> select * from admin_work_area;
未选择行.
会话2看不见会话1中临时表的数据.