`
andyyehoo
  • 浏览: 70206 次
  • 性别: 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 临时表用法

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

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

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

    oracle临时表用法

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

    SpringBoot 整合Mybatis 创建临时表

    SpringBoot 整合Mybatis 创建临时表

    Oracle存储过程中使用临时表

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

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

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

    oracle临时表操作学习资料

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

    深度解析MySQL 5.7之临时表空间

    临时表 临时表顾名思义,就是临时的,用完销毁掉的表。 数据既可以保存在临时的文件系统上,也可以保存...这种临时表在事务开始时生效,事务提交或者回滚后失效。 在MySQL里面没有这种临时表,必须利用会话级别的临时表

    SQL Server 表变量和临时表的区别(详细补充篇)

    一、表变量  表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束...2.表变量较临时表产生更少的存储过程重编译。 3.针对表变量的事务仅仅在更新

    temporal_tables, PostgreSQL扩展的临时表.zip

    temporal_tables, PostgreSQL扩展的临时表 临时表扩展 简介时间 table 是记录行有效的时间的table 。 有两种类型的句点: 应用程序周期( 也称为有效时间或者业务时间) 和系统周期( 也称为事务时间) 。系统期间是一个...

    oracle 临时表详解及实例

    在Oracle8i或以上版本中,...事务特有的临时表 CREATE GLOBAL TEMPORARY <TABLE> ( <column> ) ON COMMIT DELETE ROWS; CREATE GLOBAL TEMPORARY TABLE MyTempTable  所建的临时表虽然是存在的,但是你试一下inse

    db2表空间不足及处理.doc

    3. 表空间锁定:当多个事务同时访问同一个表空间时,可能会出现锁定问题,导致数据库性能下降。 三、DB2表空间检查 DB2表空间检查是数据库管理员的重要任务之一。检查表空间的状态可以使用DB2提供的命令,例如list...

    存储过程:利用游标+临时表实现查询

    存储过程使用游标、临时表实现动态SQL查询 2020.3.24 用能第二周周二上午,任务需求:编写存储过程查询监测设备状态以及目标监测设备状态。(任务完成) 改存储过程包含了大量相关知识,特此记录,以便此后使用! 为...

    pgtt:PostgreSQL扩展,用于创建,管理和使用Oracle风格的全局临时表以及其他RDBMS

    PostgreSQL全局临时表 ... PostgreSQL本机临时表在会话结束时或当前事务结束时自动删除。 全局临时表(GTT)是永久性的,它们被创建为对所有用户可见的常规表,但它们的内容是相对于当前会话或事务的。 即使该表是持久

    ORACLE的UNDO表空间

    ORACLE的UNDO表空间 ORACLE的UNDO表空间是Oracle数据库...我们了解了 Undo 和 Redo 的区别、临时表的特点和 TRUNCATE TABLE 语句的特点。这些知识点对于我们理解 Oracle 数据库的工作原理和维护数据的一致性非常重要。

    Springboot2.X基于可靠消息rabbitmq最终一致性分布式事务+分布式全局唯一ID生成器

     b、基于下单队列消费端临时表,查询红包、积分两个队列消费端的临时表中该订单的处理的状态,如果全部为消费成功,则更新业务订单表中的订单状态由 下单中 --》 待付款并删除所有临时表数据,如果非全部消费...

    数据库原理与应用11事务和游标的创建和使用.ppt

    例如,在更新 Employee 和 Position 两表时,可以使用 BEGIN TRANSACTION 和 COMMIT TRANSACTION 语句来维持其原子性执行事务动作,以确保数据的一致性。 在本讲中,我们学习了事务管理的基本概念和应用,包括事务...

    29.Oracle表空间和数据文件1

    表空间分为几种类型,包括永久表空间、临时表空间和回滚表空间,每种都有其特定的用途。 1. **SYSTEM表空间**:这是Oracle数据库的核心,包含数据库的元数据,如数据字典,这些信息是数据库运行所必需的。SYSTEM表...

Global site tag (gtag.js) - Google Analytics