2、详细介绍
会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
事务级临时表是指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。
3、建立临时表
临时表的定义对所有会话SESSION都是可见的,但是表中的数据只对当前的会话或者事务有效.
建立方法:
1) ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法.
EXAMPLE:
SQL> CREATE GLOBAL TEMPORARY TABLE admin_work_area
2 (startdate DATE,
3 enddate DATE,
4 class CHAR(20))
5 ON COMMIT DELETE ROWS; -- 事务级别
SQL> create table permernate( a number);
SQL> insert into admin_work_area values(sysdate,sysdate,'temperary table');
SQL> insert into permernate values(1);
SQL> commit; --事务提交
SQL> select * from admin_work_area; -- 从缓存表中查不到数据
SQL> select * from permernate;
A(列名)
----------
1
2)ON COMMIT PRESERVE ROWS
会话1:
SQL> drop table admin_work_area;
SQL> CREATE GLOBAL TEMPORARY TABLE admin_work_area
2 (startdate DATE,
3 enddate DATE,
4 class CHAR(20))
5 ON COMMIT PRESERVE ROWS;
SQL> insert into permernate values(2);
SQL> insert into admin_work_area values(sysdate,sysdate,'session temperary');
SQL> commit; --提交事务
SQL> select * from permernate;
A(列明)
----------
1(事务性临时表例子中插入的数据)
2
SQL> select * from admin_work_area; --查询临时表有值,因为还在同一session中
STARTDATE ENDDATE CLASS
---------- ---------- --------------------
17-1?? -03 17-1?? -03 session temperary
会话2:
SQL> select * from permernate;
A
----
1
2
SQL> select * from admin_work_area; -- 每个会话只能看到自身的数据
未选择行.
会话2看不见会话1中临时表的数据.
总结:会话或事务性临时表用来定义会话时临时表中数据的生命周期。临时表结构对于每个session来说都可见,而数据是每个session一份,类似于java中的私有变量一样;
其实不用去特别的记忆,从名字上就可以区分,如下:
ON COMMIT DELETE ROWS : 表明提交的时候删除数据;
ON COMMIT PRESERVE ROWS :表明提交的时候保存数据;
所以,在一次会话中执行了commit语句后,从事务性临时表中获取不到数据,而从会话临时表中可以获取到数据,就像上面例子中的演示。
分享到:
相关推荐
1. **创建临时表**:使用`CREATE GLOBAL TEMPORARY TABLE`语句创建临时表。例如: ```sql CREATE GLOBAL TEMPORARY TABLE temp_table ( column1 datatype, column2 datatype, ... ) ON COMMIT DELETE ROWS; `...
### Oracle 临时表用法详解 #### 一、背景与问题描述 在处理数据库操作时,经常遇到因数据量庞大而导致处理效率降低的问题。例如,某个报表中心的存储过程执行速度过慢,其中一个原因是该过程涉及到一个中间表,...
Oracle中的临时表是一种特殊的数据结构,用于存储会话或事务期间的数据,这些数据仅对当前会话可见,并在特定条件下自动清除。Oracle提供两种类型的临时表:事务型和会话型。 事务型临时表在事务开始时创建,插入的...
Oracle 临时表用法 Oracle 临时表是一种特殊的表结构,它可以在数据库中临时存储数据,用于实现一些特定的应用场景。下面是 Oracle 临时表的详细知识点: 创建临时表 创建临时表的语法为: ``` CREATE GLOBAL ...
在 DB2 中,临时表可以使用 DECLARE GLOBAL TEMPORARY TABLE 语句来定义。DB2 的临时表是基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在 SYSCAT....
本文将详细介绍如何在Oracle中创建临时表,并探讨其应用场景以及两种主要类型的临时表:全局临时表(Global Temporary Table)与局部临时表(Local Temporary Table)的区别及其使用方法。 #### 二、Oracle临时表...
1. **创建临时表**:使用`CREATE GLOBAL TEMPORARY TABLE`语句创建临时表,例如: ```sql CREATE GLOBAL TEMPORARY TABLE temp_table ( column1 datatype, column2 datatype ) ON COMMIT DELETE ROWS; ``` ...
- 使用`CREATE GLOBAL TEMPORARY TABLE`语句创建临时表。 - 可以通过`ON COMMIT`子句来定义数据的生命周期,即数据在何时被清除。 #### 三、创建临时表 **1. 基本语法:** ```sql CREATE GLOBAL TEMPORARY TABLE ...
### Oracle临时表详解 #### 一、Oracle临时表概述 在Oracle数据库中,临时表是一种特殊类型的数据表,主要用于存储暂时性的数据。与永久表不同的是,临时表中的数据不会一直保留,而是根据不同的条件(如事务结束...
Oracle中的临时表是一种特殊的数据表,用于存储在特定会话或事务期间产生的临时数据。它们在数据库中存在,但其生命周期受到严格的限制,以确保数据的隔离性和安全性。临时表主要分为两类:事务级别的临时表和会话...
创建全局临时表(CREATE GLOBAL TEMPORARY TABLE)是定义临时表的方式。对于事务级临时表,数据仅存在于事务生命周期内;对于会话级临时表,数据则在会话期间保持。当会话结束或事务结束时,Oracle会执行TRUNCATE...
创建临时表的语法与创建普通表类似,但需要使用`CREATE GLOBAL TEMPORARY TABLE`语句。例如: ```sql CREATE GLOBAL TEMPORARY TABLE temp_table ( column1 datatype, column2 datatype, ... ) ON COMMIT ...
- **创建**:创建事务临时表的命令通常类似于`CREATE GLOBAL TEMPORARY TABLE Temp_user (ID NUMBER(12) PRIMARY KEY, name VARCHAR2(10))`。默认情况下,如果没有明确指定,Oracle将创建的临时表视为事务临时表。...
创建全局临时表的语句是`CREATE GLOBAL TEMPORARY TABLE`,它可以指定为事务特定或会话特定。对于事务特定的临时表,数据在事务生命周期内有效;而对于会话特定的临时表,数据在会话期间有效。当会话结束或事务结束...
Oracle的临时表是一种特殊的数据存储结构,主要用于处理一次性或短暂性的数据需求,尤其在处理大量数据和复杂查询时,能够显著提升性能。临时表在Oracle中有两种类型:会话级临时表和事务级临时表。 1. **会话级...
Oracle Temporary Tables,也称为Oracle临时表,是Oracle数据库系统中用于存储临时数据的特殊类型表。它们主要用于处理会话级别的数据,这些数据在特定会话或事务结束后会被自动清理,从而减少了对永久表的负担和...
在 Oracle 数据库中,也有临时表的概念。临时表可以分为事务临时表和会话临时表。事务临时表是指数据只有在当前事务内有效,关闭事务后,数据表中的内容将被删除。会话临时表是指数据只在当前会话内有效,关闭当前...
临时表的创建语法与普通表类似,但我们需要使用`GLOBAL TEMPORARY TABLE`关键字。例如,我们可以创建一个名为`TEMP_EMP`的临时表: ```sql CREATE GLOBAL TEMPORARY TABLE TEMP_EMP ( ID NUMBER, NAME VARCHAR2...
本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
当我们需要在存储过程中创建一个临时工作区域来存储中间结果,或者想要返回一个结果集时,临时表(Temporary Table)就派上了用场。 临时表是数据库中的特殊表格,它的生命周期只存在于会话(Session)内,一旦会话...