`
andyyehoo
  • 浏览: 71183 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

临时表和事务

阅读更多
http://www.cndw.com/tech/data/2006041339090.asp

2、临时表的创建
创建Oracle临时表,可以有两种类型的临时表:会话级的临时表和事务级的临时表

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


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

语法上,会话级临时表采用on commit preserve rows而事务级则采用on commit delete rows;

4、临时表的应用
  1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。
  2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。

1、当指定临时表为on commit preserve rows得时候(会话级),在当前SESSION中像要将该表进行drop得时候,oracle提示:
drop table student *

ERROR at line 1:

ORA-14452: attempt to create, alter or drop an index on temporary table already in use

如果你要删除这样表,方法有两个:一是退出这个SESSION,然后再次登陆,再执行DROP TABLE命令;二是在当前SESSION中先进行truncate,即模拟退出SESSION得时候ORACLE得操作(截断数据),再执行DROP TABLE即可。

2、所有临时数据将存放在当前用户得临时表空间下(每一个用户创建得时候可以执行表空间)。
3、创建临时表得时候也可以指定某一个临时表空间。


关于临时表多用户并行不是问题,一个会话从来不会阻止另一个会话使用临时表。即使“锁定”临时表,一个会话也不会阻止其他会话使用它们的临时表。

临时表的基本定义是:
  数据库中的所有会话均可以访问临时表,但只有插入数据到临时表中的会话才能看到本身插入的数据。可以把临时表指定为事务相关(默认)或者是会话相关:

分享到:
评论

相关推荐

    Oracle 临时表用法

    下面通过具体的SQL语句展示会话级临时表和事务级临时表的使用。 ##### 6.1 会话级临时表示例 ```sql CREATE GLOBAL TEMPORARY TABLE emp_temp_preserve ON COMMIT PRESERVE ROWS AS SELECT * FROM emp WHERE 1 = 2...

    SQL Server中关于临时表概念及创建和插入数据等问题

    临时表可以分为事务临时表和会话临时表。事务临时表是指数据只有在当前事务内有效,关闭事务后,数据表中的内容将被删除。会话临时表是指数据只在当前会话内有效,关闭当前会话或者进行新的连接之后,数据表中的内容...

    Oracle存储过程中使用临时表

    本篇文章将深入探讨如何在Oracle存储过程中使用临时表,包括会话级临时表和事务级临时表。 ### 会话级临时表 会话级临时表(Session-Level Temporary Tables)只在创建它的会话内可见,并且在会话结束时自动删除。...

    oracle临时表(事务级、会话级).docx

    "Oracle 临时表(事务级、会话级)" Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存...在 Oracle 中,临时表可以分为事务级和会话级,而在 SQL Server 中,临时表可以分为本地临时表和全局临时表。

    oracle,sql临时表.pdf

    Oracle的临时表分为两类:会话级临时表和事务级临时表。会话级临时表的数据在整个会话期间有效,直到用户退出会话;而事务级临时表的数据仅在事务期间存在,事务结束后数据即被清除。临时表的一个关键特性是其数据的...

    Oracle_临时表介绍

    临时表在Oracle中有两种类型:会话级临时表和事务级临时表。 1. **会话级临时表**: 会话级临时表的数据仅对当前会话可见,且在会话结束时,数据会被自动截断,即清空。即使在同一个会话内进行了多次提交(`COMMIT...

    ORACLE中临时表

    Oracle提供两种类型的临时表:事务型和会话型。 事务型临时表在事务开始时创建,插入的数据只在事务提交或回滚前有效。一旦事务结束,所有记录都会被自动删除。这种类型的临时表主要用于短暂的中间计算或存储,以...

    主流数据库中临时表的使用

    * 在事务处理过程中,临时表可以用来存储临时数据,确保数据的一致性和可靠性。 * 在数据报表和分析过程中,临时表可以用来存储报表数据,提高报表生成效率。 临时表的优点 临时表有很多优点,例如: * 临时表...

    mysql临时表用法分析【查询结果可存在临时表中】

    总结,MySQL临时表提供了一种灵活的方式来存储和处理临时数据,它们在处理大量数据和复杂的查询逻辑时尤其有用。临时表可以帮助优化查询性能,特别是在需要多次处理相同数据集的情况下,避免了反复执行相同的查询。...

    oracle临时表用法

    Oracle 中的临时表有两种:事务级别的临时表和会话级的临时表。事务级别的临时表在事务结束时自动清空记录,而会话级的临时表在会话结束时自动清空。 临时表的特点 临时表有以下特点: * 临时表可以在多用户并发...

    SpringBoot 整合Mybatis 创建临时表

    现在,你可以通过调用`createTempTable`和`queryTempTable`方法来完成临时表的创建和查询。这个例子展示了如何在SpringBoot项目中整合Mybatis,创建并使用临时表进行数据操作。这种方式在处理一些临时性、会话级别的...

    简单理解数据库临时表

    - **全局临时表**(Global Temporary Table, GGT):不同于会话级临时表,全局临时表可以在整个数据库实例内共享,并且可以在提交或回滚事务后保留数据,直到下一次插入新数据覆盖为止。 #### 四、临时表的创建与...

    oracle临时表操作学习资料

    Oracle数据库中的临时表是一种特殊的表类型,主要用于存储在特定会话或事务期间产生的临时数据。与常规的永久表相比,临时表的数据不会永久保存,而是会在会话结束或事务完成时自动清除,无需用户手动删除。 1. **...

    对比Oracle临时表和SQL Server临时表的不同点

    - Oracle的临时表分为两种类型:会话级临时表和事务级临时表。会话级临时表的数据仅在创建它的会话期间有效,当会话结束(用户退出或异常结束)时,数据自动被清理。而事务级临时表的数据只在事务范围内存在,一旦...

    sql临时表相关介绍

    临时表在处理一次性数据需求、复杂查询的中间结果存储以及避免多次计算重复数据等方面非常有用,尤其是在大型数据处理或事务处理中。不过,使用临时表时要注意管理内存和性能,避免不必要的资源消耗。

    Oracle临时表

    根据数据的生命周期,Oracle临时表可以分为两大类:事务临时表和会话临时表。 ##### 1. 事务临时表 - **定义**:事务临时表中的数据仅在当前事务的生命周期内有效。一旦事务结束(通过提交或回滚),表中的所有...

    存储过程中的临时表使用方法

    3. **事务处理**:在使用临时表时要注意事务的一致性和隔离级别,确保数据的正确性。 #### 五、最佳实践 - **限制全局临时表的使用**:尽量减少全局临时表的使用,特别是在涉及敏感数据的情况下。 - **定期维护...

    oracle自增长与临时表

    在Oracle数据库系统中,"自增长"和"临时表"是两个重要的概念,它们在数据库管理和数据处理中扮演着关键角色。自增长字段通常用于自动为新插入的记录生成唯一的标识符,而临时表则是在特定会话或事务中存储临时数据的...

    oracle学习笔记整理

    临时表分为两类:会话级临时表和事务级临时表,这两种类型各有其特定的生命周期和数据保留规则。 会话级临时表的数据在创建它的会话期间保持有效,直到会话结束,不论是正常退出还是异常终止,Oracle都会自动清空表...

Global site tag (gtag.js) - Google Analytics