`

Oracle临时表的使用和注意事项

 
阅读更多

 

Oracle临时表,可以有两种类型的临时表:

会话级的临时表

事务级的临时表。


1) 会话级的临时表因为这这个临时表中的数据和你的当前会话有关系,当你当前SESSION不退出的情况下,临时表中的数据就还存在,而当你退出当前SESSION的时候,临时表中的数据就全部没有了,当然这个时候你如果以另外一个SESSION登陆的时候是看不到另外一个SESSION中插入到临时表中的数据的。即两个不同的SESSION所插入的数据是互不相干的。当某一个SESSION退出之后临时表中的数据就被截断(truncate table,即数据清空)了。会话级的临时表创建方法:

Create Global Temporary Table Table_Name

(Col1 Type1,Col2 Type2...) On Commit Preserve Rows;


举例:

create global temporary table Student

(Stu_id Number(5),

Class_id  Number(5),

Stu_Name Varchar2(8),

Stu_Memo varchar2(200)) on Commit Preserve Rows ;


2) 事务级临时表是指该临时表与事务相关,当进行事务提交或者事务回滚的时候,临时表中的数据将自行被截断,其他的内容和会 话级的临时表的一致(包括退出SESSION的时候,事务级的临时表也会被自动截断)。事务级临时表的创建方法:

Create Global Temporary Table Table_Name

(Col1 Type1,Col2 Type2...) On Commit Delete Rows;


举例:

create global temporary table Classes

(Class_id Number(5),

Class_Name Varchar2(8),

Class_Memo varchar2(200)) on Commit delete Rows 


3)  两中类型临时表的区别

会话级临时表采用on commit preserve rows;而事务级则采用on commit delete rows;用法上,会话级别只有当会话结束临时表中的数据才会被截断,而且事务级临时表则不管是commit、rollback或者是会话结束,临时表中的数据都将被截断

4)什么时候使用临时表

1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中

2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。

5).在使用Oracle临时表的过程中需要注意的事项。

    1) 不支持lob对象,这也许是设计者基于运行效率的考虑

    2) 不支持主外键关系

    3) 不支持物化视图

    4) 可以在临时表上创建索引

    5) 可以基于临时表创建视图

    6) 临时表结构可被导出,但内容不可以被导出

    7) 临时表通常是创建在用户的临时表空间中的,不同用户可以有自己的独立的临时表空间

    8) 不同的session不可以互相访问对方的临时表数据

    9) 临时表数据将不会上DML(Data Manipulation Language)锁


分享到:
评论

相关推荐

    Oracle临时表

    本文讲述了Oracle数据库两种临时表的创建及使用注意事项。

    oracle10g课堂练习I(1)

    目录 前言 1 简介 课程目标 1-2 ...临时表:注意事项 7-43 数据字典:概览 7-44 数据字典视图 7-45 数据字典:用法示例 7-46 小结 7-47 练习概览:管理方案对象 7-48 。。。。

    Oracle数据库管理员技术指南

    1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 1.4.3 优化数据字典存储 1.5 理解 CREATE DATABASE 命令 1.6 创建数据库的技术 1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库...

    临时表空间的管理与受损恢复

     一、临时表空间的特性与注意事项  1、特性  用户存储临时数据的表空间  临时数据通常只在一个数据库会话期间内存在的数据,分为两种形式,排序数据和全局临时表  临时数据不会被写入存储对象的普通表...

    Oracle_Database_11g完全参考手册.part3/3

    14.2 使用临时表 14.3 使用ROLLUP、GROUPING和CUBE 14.4 家族树和COlLrlectby 14.4.1 排除个体和分支 14.4.2 向根遍历 14.4.3 基本规则 第15章 更改数据:插入、更新、合并和删除 第16章 DECODE和CASE.SQL中的if-...

    Oracle_Database_11g完全参考手册.part2/3

    14.2 使用临时表 14.3 使用ROLLUP、GROUPING和CUBE 14.4 家族树和COlLrlectby 14.4.1 排除个体和分支 14.4.2 向根遍历 14.4.3 基本规则 第15章 更改数据:插入、更新、合并和删除 第16章 DECODE和CASE.SQL中的if-...

    oracle10g课堂练习I(2)

    临时表:注意事项 7-43 数据字典:概览 7-44 数据字典视图 7-45 数据字典:用法示例 7-46 小结 7-47 练习概览:管理方案对象 7-48 8 管理数据和并发处理 课程目标 8-2 通过 SQL 处理数据 8-3 INSERT 命令 8...

    (E文)基于成本的Oracle优化法则.pdf

    7.3.2 注意事项 156 7.4 “高度均衡”直方图 157 7.5 重新审视数据问题 163 7.5.1 愚蠢的数据类型 163 7.5.2 危险的默认值 166 7.6 本章小结 167 7.7 测试用例 168 第8章 位图索引 169 8.1 入门 170 8.1.1 索引组件 ...

    数据库编程规范

    注意事项 l 索引 每一张表必须有一个主键 <表名>_pk 若干外键索引 <表名>_fk_<数字> 若干其它索引 <表名>_<数字> l 数据类型 定义合适的数据类型,注意 例如: amount number(9,2)...

    asp.net知识库

    .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下...

    浪潮ERP账套备份恢复工具

    DBGhost注意事项: 1、受ORACLE数据库系统本身限制,对于ORACLE账套只有本账套恢复时才能恢复操作员密码,即A账套备份出来的数据在B账套上恢复时无法恢复操作员原密码,将重置为默认密码; 2、由于增加备份操作员...

    2009达内SQL学习笔记

    一、注意事项: 大小写不敏感,即不区分大小写。提倡关键字大写,便于阅读和调式。 “!”在SQL环境下执行Unix命令。 SQL语句是由简单的英语单词构成;这些英语单词称为关键字/保留字,不做它用。SQL由多个关键字...

    网管教程 从入门到精通软件篇.txt

     注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。  bootcfg /scan 扫描用于 Windows 安装的所有磁盘并显示结果。  注意:这些结果被静态存储,并用于本次会话。如果在...

Global site tag (gtag.js) - Google Analytics