Oracle临时表(Temporary Table)

GLOBAL TEMPORARY代表全局临时表
临时表的元数据存储在数据字典里面

只当第一条DML命令发生的时候才为这张表的段分配空间

临时表数据的可见范围应该是会话级别或是事务级别的

会话或者事务级别又建表时的ON COMMIT关键字决定,ON COMMIT DELETE ROWS代表事务级别,ON COMMIT PERSERVE ROWS代表会话级别

DDL命令只在临时表与会话断开绑定之后才可以运行

对于会话级别,当TRUNCATE命令发生时会话与临时表间的绑定也就断开了;而对于事务级别,在ROLLBACK或者COMMIT

Oracle临时表的一些限制:
■ Temporary tables cannot be partitioned, clustered, or index organized.
■ You cannot specify any foreign key constraints on temporary tables.
■ Temporary tables cannot contain columns of nested table.
■ You cannot specify the following clauses of the LOB_storage_clause:
TABLESPACE, storage_clause, or logging_clause.
■ Parallel UPDATE, DELETE and MERGE are not supported for temporary tables.
■ You cannot specify the nested_table_col_properties or parallel_
clause.
■ The only part of the segment_attributes_clause you can specify for a
temporary table is TABLESPACE.
■ Distributed transactions are not supported for temporary tables.

时间: 2024-11-05 13:41:51

Oracle临时表(Temporary Table)的相关文章

PLSQL_Oracle临时表Temporary Table基本概念和用法(概念)

2014-06-08 BaoXinjian 一.基本概念 1. 我对临时表的理解: 在 Oracle 中创建一张表,这个表不用于其他的什么功能,主要用于自己的软件系统一些特有功能才用的,而当你用完之后表中的数据就没用了. Oracle 的临时表创建之后基本不占用表空间,如果你没有指定临时表(包括临时表的索引)存放的表空的时候,你插入到临时表的数据是存放在 ORACLE 系统的临时表空间中( TEMP ). 2. 基本概念 用以保存事物或会话期间的中间结果,只可对当年会话是可见的,其他任何会话都无

Oracle临时表GLOBAL TEMPORARY TABLE

临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前 会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到.临时表不存在并发行为,因为他们对于当前会话都是独立的. 创建临时表时,Oracle只创建了表的结构(在数据字典中定义),并没有初始化内存空间,当某一会话使用临时表时,ORALCE会从当前用户的 临时表空间分配一块内存空间.也就是说只有向临时表中插入数据时,才会给临时表分配存储空间. 临时表分事务级临时表和会话

ORACLE创建临时事务表global temporary table 和 查询时临时表with tempName as (select ) select

创建临时事务表只是保存当前会话(session)用到的数据,数据只在事务或会话期间存在,可规避多线程调用数据冲突问题 -- Create table create global temporary table TEM_FI_COURSE_CONFIG ( lgart VARCHAR2(20), komok VARCHAR2(20), sign VARCHAR2(20), lgart1 VARCHAR2(20), sign1 VARCHAR2(20), ktosl VARCHAR2(20), bs

【TEMPORARY TABLE】Oracle两种类型功能特点比较

临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对当前会话或事务可见.每个会话只能查看和修改自己的数据. 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表. 1)ON COMMIT DELETE ROWS 它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMI

Postgresql中临时表(temporary table)的特性和用法

熟悉Oracle的人,相比对临时表(temporary table)并不陌生,很多场景对解决问题起到不错的作用,开源库Postgresql中,也有临时表的概念,虽然和Oracle中临时表名字相同,使用方法和特性也有类似的地方,但还是有很多不同的方面,下面就对比Oracle中临时表举例说明下. 1.Postgresql 临时表的会话隔离性 Oracle中的临时表,创建后,虽然各个会话间的数据是互相隔离的,也就是一个会话看不到其他会话的数据,但定义是共用的.而Postgresql中的临时表,创建后,

ORACLE临时表总结

临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对当前会话或事务可见.每个会话只能查看和修改自己的数据. 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表. 1)ON COMMIT DELETE ROWS 它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMI

oracle 临时表

简述 drop table tmp_qry_cus_186mcc_highuser_d; create global temporary table tmp_qry_cus_186mcc_highuser_d ( user_id           number(15) )on commit preserve rows; 这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据 在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESER

ORACLE临时表总结[转]

临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对当前会话或事务可见.每个会话只能查看和修改自己的数据. 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表. 1)ON COMMIT DELETE ROWS 它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMI

ORACLE临时表总结(转载)

转载地址:http://www.cnblogs.com/kerrycode/p/3285936.html 临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对当前会话或事务可见.每个会话只能查看和修改自己的数据. 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表. 1)ON COMMIT DELETE ROWS 它