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

推荐订阅源

G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
A
About on SuperTechFans
量子位
Engineering at Meta
Engineering at Meta
B
Blog
The Cloudflare Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
J
Java Code Geeks
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
H
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 每天都有进步

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中临时表的数据.