文章目录

  • 1 概述
  • 2 分类
    • 2.1 事务级临时表
    • 2.2 会话级临时表

1 概述

1. 作用:用来 '临时' 存储数据(1) 当一个事务或会话结束的时候,这个临时表中的 '数据' 会被数据库自动清空(2) 但 '表结构' 依旧保留2. 分类: '生命周期的不同'(1) 事务级临时表: on commit delete rows;   commit 时 '删除' 记录(默认)(2) 会话级临时表: on commit preserve rows; commit 时 '保存' 记录,结束会话时 '删除' 记录3. 注意(1) 临时表处理的效率高于普通表<1> 不记录 '日志'<2> 只能当前用户使用,不会产生 '锁'(2) 和普通表操作方式一样4. 以下测试中,创建临时表后,信息查询select t.owner,t.table_name,t.tablespace_name, -- 所属表空间t.logging, -- 是否记录日志t.duration --生命周期from dba_tables twhere t.owner = 'SCOTT'and t.table_name in ('TRANSACTION_TEMP', 'SESSION_TEMP');

2 分类

2.1 事务级临时表

create global temporary table transaction_temp (tid   number(3),tname varchar2(30)
) on commit delete rows; -- on commit delete rows 可省略(默认)

验证:事务中,数据可以查询,事务结束后(commit、rollback)后,数据被清空

insert into transaction_temp(tid, tname) values(1, 'a');
insert into transaction_temp(tid, tname) values(2, 'b');
-- commit;select * from transaction_temp;

查询截图:

2.2 会话级临时表

create global temporary table session_temp (tid   number(3),tname varchar2(30)
) on commit preserve rows;

验证:commit 时,保存数据至表中,会话结束后,数据被清空

insert into session_temp(tid, tname) values(1, 'a');
insert into session_temp(tid, tname) values(2, 'b');
commit;select * from session_temp;

结束会话有以下办法:(上述测试,立马就结束了,执行很快哦)

1. 自然结束(执行完成) -- sql_text => begin :id := sys.dbms_transaction.local_transaction_id; end;select t1.sid, t1.serial#, t2.sql_text, t2.actionfrom v$session t1, v$sql t2where t2.sql_id = t1.prev_sql_idand t1.username = 'SCOTT';2. 手动删除(1) alter system kill session 'sid,serial#';

再新建一个会话,查询:数据被清空了

Oracle 临时表详解(temporary table)相关推荐

  1. Oracle - 临时表(GLOBAL TEMPORARY TABLE)

    http://aofengblog.blog.163.com/blog/static/6317021200951664351836/ Oracle - 临时表(GLOBAL TEMPORARY TAB ...

  2. Oracle 表详解(table)

    文章目录 1 概述 2 语法 2.1 创建表 create table 2.2 修改表 alter table 2.3 删除表 drop table 2.4 清空表 truncate table 2. ...

  3. Oracle 临时表 (Gobal Temporary Table)

    提问,插入数据之后,COMMIT,数据是否一定会在表里呢? 回答 一定会在.我认为没有错 回答 可能会在.也没有错  → 没在就一定是被删了,那么有一种表,会在Commit时,清空所有数据. 刚才说的 ...

  4. Oracle 错误代码详解

    Oracle 错误代码详解及解决方式–ORA ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事 ...

  5. Oracle 冷备份详解【实战案例】

    Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...

  6. oracle里面asm的作用,Oracle ASM 详解

    Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...

  7. oracle分区表编程,Oracle分区表详解

    当前位置:我的异常网» 编程 » Oracle分区表详解 Oracle分区表详解 www.myexceptions.net  网友分享于:2013-10-28  浏览:25次 Oracle分区表详解 ...

  8. Oracle 存储过程详解(上)

    目录 一.存储过程与存储函数的定义 二.创建 / 执行存储过程所需的权限 1.resource权限 2.create.execute procedure权限 三.创建 / 执行存储过程 四.变量与参数 ...

  9. oracle list 分区详解,ORACLE分区表详解

    此文从以下几个方面来整理关于分区表的概念及操作:1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作. (1.) 表空间及分区表 ...

  10. Oracle translate() 详解+实例

    Oracle translate() 详解+实例 一.语法: TRANSLATE(string,from_str,to_str) 二.目的 返回将(所有出现的)from_str中的每个字符替换为to_ ...

最新文章

  1. HA: Dhanush靶机渗透测试
  2. iOS设计模式——MVC(Model-View-Controller)
  3. java z注释过滤_如何编写一个java程序来过滤所有注释行并只打印java编码行?
  4. MYSQL:MYSQL索引为什么选择B+树?
  5. HDU1907 ZJU3113
  6. 注释嵌套注释_注释,无处不在的注释
  7. java heapsort_排序算法笔记:堆排序 HeapSort in java
  8. 机器学习笔记七之机器学习诊断
  9. The operation could not be performed because OLE DB provider SQLNCLI11 for linked server SDSSDFCC...
  10. AMD ATI Radeon 显卡被曝多个漏洞
  11. Django-ROM(字段,参数)
  12. oracle删除重复字段数据库,用Oracle的分析函数删除重复的数据,
  13. 通过Expression Tree来扩展MVC中的HtmlHelper 和 UrlHelper
  14. 在线uml画图工具网站
  15. 算法导论 答案勘误(ing)
  16. MySQL 中的 repeate() 函数
  17. go语言:sync.Once的用法
  18. 专访许鹏:谈C程序员修养及大型项目源码阅读与学习
  19. 定语从句和同位语重句的区别
  20. HTML5主体结构元素

热门文章

  1. 计算机专业英语思维导图
  2. fw325r没有虚拟服务器,FAST FW325R配置教程
  3. HTML+css网站设计布局模板
  4. [SpringBoot]下载excel模板,postman测试接口
  5. VASP_Si的能带结构计算_步骤整理
  6. 为解放程序员而生,网易重磅推“场景化云服务”,强势进军云计算市场
  7. Windows Media Player 播放.WMV文件破解许可证
  8. UE 编辑器无法保存文件(图表被连接到外部包中的私有对象)
  9. 你知道全中国有多少个火车站吗?
  10. 解读——等级保护定级指南