Oracle两种临时表的创建与使用详解
ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,但是临时表的结构以及元数据还存储在用户的数据字典中。
分类:
1.会话级临时表
会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
格式:
1
2
3
4
5
6
7
|
Create Global Temporary Table Table_Name ( Col1 Type1, Col2 Type2 ... ) On Commit Preserve Rows; |
2.事务级临时表
事务级临时表是指临时表中的数据只在事务生命周期中存在。
1
2
3
4
5
6
7
|
Create Global Temporary Table Table_Name ( Col1 Type1, Col2 Type2 ... ) On Commit Delete Rows; |
当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。
下面在Oracle 10g中演示了临时表的创建与使用:
1.创建事务级临时表,插入一条数据,并查询:
1
2
3
|
create global temporary table transaction_temp_tb (col1 varchar (20)) on commit delete rows ; insert into transaction_temp_tb values ( 'test' ); select * from transaction_temp_tb; |
2.执行commit或者rollback操作,临时表内数据就被清空,但表结构依然存在:
3.创建一个会话级临时表,插入一条数据,并查询:
1
2
3
|
create global temporary table session_temp_tb (col1 varchar (20)) on commit preserve rows ; insert into session_temp_tb values ( 'test' ); select * from session_temp_tb; |
4..执行commit或者rollback操作,表内数据依然存在,新建一个命令窗口(相当于开启了一个新的会话),表内的数据就查询不到了:
5.如果创建会话临时表的会话没有结束,则无法删除此临时表,因为临时表,还在使用之中,但是结束会话(关闭创建会话级临时表的命令窗口)后就可以删除了:
Oracle两种临时表的创建与使用详解的更多相关文章
- jQuery插件开发的两种方法及$.fn.extend的详解(转)
jQuery插件开发的两种方法及$.fn.extend的详解 jQuery插件开发分为两种:1 类级别.2 对象级别,下面为大家详细介绍下 jQuery插件开发分为两种: 1 类级别 类级别你可以 ...
- jQuery插件开发的两种方法及$.fn.extend的详解
jQuery插件开发分为两种: 1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.ex ...
- MySQL中的两种临时表
MySQL中的两种临时表 伯乐在线2016-07-06 05:16:52阅读(4556)评论(3) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场.举报 ...
- mybatis oracle两种方式批量插入数据
mybatis oracle两种方式批量插入数据 注意insert,一定要添加: useGeneratedKeys="false" ,否者会报错. <insert id=&q ...
- brctl创建虚拟网卡详解
brctl创建虚拟网卡详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 很久之前我分享过一篇关于搭建Openvpn的笔记,在笔记的最后我分享了一个脚本,是用来创建虚拟网卡的,今天 ...
- MySQL 中的两种临时表
来源:阿里云RDS - 数据库内核组 链接:http://mysql.taobao.org/monthly/2016/06/07/ 外部临时表 通过CREATE TEMPORARY TABLE 创建的 ...
- Linux常用命令 - 五种创建文件命令详解
21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 创建文 ...
- Android的onCreateOptionsMenu()创建菜单Menu详解(转)
Android一共有三种形式的菜单: 1.选项菜单(optinosMenu) 2.上下文菜单(ContextMenu) 3.子菜单(s ...
- Android的onCreateOptionsMenu()创建菜单Menu详解
Android一共有三种形式的菜单: 1.选项菜单(optinosMenu) 2.上下文菜单(ContextMenu) 3.子菜单(s ...
随机推荐
- Unity在Project视图里面显示文件的拓展名
Unity在Project视图里面显示文件的拓展名 功能脚本如下: using System.IO; using System.Reflection; using UnityEngine; using ...
- centos6安装bochs
安装包 bochs 2.6.8 平台 centos6 前提依赖 yum groupinstall -y "Server Platform Development" "De ...
- int,long,long long的数据范围
unsigned int 0-4294967295 int 2147483648-2147483647 unsigned long 0-4294967295long 2147483 ...
- jquery调用asp.net 页面后台的实现代码
先创建一个aspx页面编写一个客户端控件<input type="button" id="AjaxDemo" value="AjaxDemo&q ...
- 经典SQL语句集锦(收藏版)
文章来源:http://www.cnblogs.com/herbert/archive/2010/07/02/1770062.html SQL分类: DDL—数据定义语言(CREATE,ALTER,D ...
- liunx下文件授权可执行权限chmod
Cannot find ./catalina.sh The file is absent or does not have execute permission This file is needed ...
- js和JQuery中offset等属性对比
HTML: 内容在滚动条下面 <div id="outerDiv"> <div id="myDiv" class="myDiv&qu ...
- 妙用Object
妙用Object 当你在写C#程序时,经常会用到“ToString()”这个方法,而且如果你细心你点就会发现所有的引用类型都含有“ToString()”这个方法,那么你知道为什么会这样吗?很简单,因为 ...
- js的内联和外部调用
如上代码(实现轮播图的部分代码),若以内联形式写在html里,就不会出现异常.但是如果放在外部js文件中,并在html的head中调用,就会出现异常(不报错,但是轮播逻辑出现异常). 解决:不使用全局 ...
- vue-resource的使用
之前使用axios post请求不能向后台发送数据,然后使用了vue-resource这个插件 import Vue from 'vue' import VueResource from 'vue- ...