`
andyyehoo
  • 浏览: 70269 次
  • 性别: 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、创建临时表得时候也可以指定某一个临时表空间。


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

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

分享到:
评论

相关推荐

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

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

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

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

    oracle,sql临时表.pdf

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

    Oracle 临时表用法

    很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。

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

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

    oracle临时表用法

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

    SpringBoot 整合Mybatis 创建临时表

    SpringBoot 整合Mybatis 创建临时表

    Oracle存储过程中使用临时表

    Oracle存储过程中使用临时表 会话级临时表 事务级临时表

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

    Oracle数据库创建临时表的过程以及和SQL Server临时表的不同点的对比的相关知识是本文我们主要要介绍的内容,接下来就让我们一起来了解...Oracle临时表分为会话级临时表和事务级临时表。 会话级临时表是指临时表中的

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

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

    oracle学习笔记整理

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

    postgresql临时表

    postgresql临时表postgresql临时表postgresql临时表postgresql临时表

    Oracle中的临时表讲解

    临时表主要分为两类:事务级别的临时表和会话级别的临时表。 1. **事务级别的临时表**: 创建这类临时表的命令格式为 `CREATE GLOBAL TEMPORARY TABLE ... ON COMMIT DELETE ROWS`。这类表在事务结束(通常在提交...

    创建和使用临时表.docx

    临时表在事务处理、存储过程和复杂查询中的应用: - 在存储过程中,可以使用临时表存储中间结果,提高效率。 - 可以用于批量处理数据,如分批更新或删除。 - 在多表联接查询中,临时表可以作为工作区,减少内存消耗...

    oracle临时表操作学习资料

    在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动清除。

    oracle,sql临时表.docx

    Oracle数据库系统支持创建临时表(Temporary Tables),这些表主要用于存储会话私有的、仅在特定事务或会话期间存在的数据。临时表的概念为用户提供了在处理大量临时数据时的高效和安全的方式,尤其是在进行复杂计算...

    oracle 临时表详解及实例

    创建Oracle临时表有两种方式,分别对应于会话级临时表和事务级临时表: 1. **会话特有的临时表**: 使用`ON COMMIT PRESERVE ROWS`选项创建的临时表,其数据在整个会话期间保持有效。即使在提交事务后,数据也不会...

    OracleTemporaryTables(Oracle临时表).pdf

    - **索引和视图**:可以对临时表创建索引并基于临时表创建视图,但这些索引也是临时的,只对当前会话或事务有效。 - **触发器支持**:临时表可以拥有触发器,扩展了功能。 - **导入导出**:可以使用`EXPDP`和`...

    sql_临时表.docx

    临时表的一个常见应用是在事务处理或复杂的多步骤查询中。例如,可以使用临时表来分批处理大量数据,避免一次性加载大量数据导致的性能问题。此外,临时表也可以用于存储中间结果,以便在多个操作之间保持数据的完整...

Global site tag (gtag.js) - Google Analytics