zoukankan      html  css  js  c++  java
  • Temporary Tables临时表

    1简介
    ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保存一个会话SESSION的数据,
    或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,
    但是临时表的结构以及元数据还存储在用户的数据字典中。
    临时表只在oracle8i以及以上产品中支持。
    2详细介绍
    Oracle临时表分为 会话级临时表和事务级临时表。
    会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
    事务级临时表是指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。
    临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。因此,
    临时表不需要DML锁.当一个会话结束(用户正常退出 用户不正常退出 ORACLE实例崩溃)或者一个事务结束的时候,Oracle对这个会话的表执行 TRUNCATE 语句清空临时表数据.但不会清空其它会话临时表中的数据.
    你可以索引临时表和在临时表基础上建立视图.同样,建立在临时表上的索引也是临时的,也是只对当前会话或者事务有效. 
    临时表可以拥有触发器.
    3建立临时表
    临时表的定义对所有会话SESSION都是可见的,但是表中的数据只对当前的会话或者事务有效.
    建立方法:
    1) ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法.
    CREATE GLOBAL TEMPORARY TABLE admin_work_area
    (startdate DATE,
    enddate DATE,
    class CHAR(20))
    ON COMMIT DELETE ROWS;

    2)ON COMMIT PRESERVE ROWS 定义了创建会话级临时表的方法.
    CREATE GLOBAL TEMPORARY TABLE admin_work_area
    (startdate DATE,
    enddate DATE,
    class CHAR(20))
    ON COMMIT PRESERVE ROWS;
    EXAMPLE:

  • 相关阅读:
    hdu 4407 Sum 容斥+当前离线
    2014第11周二开发记
    2014第11周一word样式
    2014第10周日
    2014第10周六
    2014第10周杂想
    2014第10周四项目开发回顾提纲
    2014第10周三高效程序员的习惯
    2014第10周二程序员思维
    2014第10周一
  • 原文地址:https://www.cnblogs.com/lvxiaowei/p/4285991.html
Copyright © 2011-2022 走看看