注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

0与1构筑世界,程序员创造时代

软件架构设计 Java编程

 
 
 

日志

 
 

Oracle - 临时表(GLOBAL TEMPORARY TABLE)  

2009-06-16 18:43:51|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  文章声明

作者:傲风(aofengblog@163.com)       编写时间:2009年06月16日

网址:http://aofengblog.blog.163.com

作者保留所有权利,转载请保留文章全部内容!


环境

Oracle 9i,Oracle 10G
 

描述

    ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,但是临时表的结构以及元数据还存储在用户的数据字典中。
    可以对临时表创建索引,视图,出发器,可以用export和import工具导入导出表的定义,但是不能导出数据。表的定义对所有的会话可见。
    临时表只在oracle8i以及以上产品中支持。

1、两种临时表:
名称 描述
 会话临时表  保存当前会话(session)用到的数据,数据会话期间存在,每次提交后ORACLE将截断表(删除全部行)。
 事务临时表  保存当前事务用到的数据,数据只在事务期间存在,当中断会话时ORACLE将截断表。
会话的数据对于当前会话私有,每个会话只能看到并修改自己的数据,DML锁不会加到
临时表的数据上。

2、如何建立临时表。
  • 新建会话临时表语法
CREATE GLOBAL TEMPORARY TABLE <TABLE_NAME> (
    <column specification>
) ON COMMIT PRESERVE ROWS;
  • 新建事务临时表语法
CREATE GLOBAL TEMPORARY TABLE <TABLE_NAME> (
    <column specification>
) ON COMMIT DELETE ROWS;

3、示例。
  • 新建会话临时表
CREATE GLOBAL TEMPORARY TABLE <TABLE_NAME> (
    user_name varchar2(30) not null,
    birthday      date
) ON COMMIT PRESERVE ROWS;
  • 新建事务临时表
CREATE GLOBAL TEMPORARY TABLE <TABLE_NAME> (
    user_name varchar2(30) not null,
    birthday      date
) ON COMMIT DELETE ROWS;


<正文结束>
  评论这张
 
阅读(3819)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017