在Oracle8i或以上版本中,可以创建以下两种临时表:
1.会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT PRESERVE ROWS;
2.事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT DELETE ROWS;
但是对比DB2,Oracle的临时表有着很大的却别。
就像是JSP一样,Oracle的临时表是存放在application的。
也就是说,所有的存储过程都能够访问这个临时表。
其实,临时表就像是普通的表一样。
而在DB2,临时表前面会有SESSION.XX_TMP_TBL
无论你怎么搞这个临时表,都是存在SESSION里面。
而且每个存储过程内部可以构建和删除这样的临时表,相互独立。
对比Oracle,使不能在SP(存储过程)里面使用DDL。
也就是CREATE TABLE,CREATE INDEX这样的。
补充一点,DB2的临时表和Oracle的临时表上面都可以构建索引,INDEX。
但是DB2是SESSION.INDEX。
而Oracle使用的是普通的INDEX声明。
Oracle中可以对临时表创建索引,视图,出发器,可以用export和import工具导入导出表的定义,但是不能导出数据。表的定义对所有的会话可见。
创建时:
CREATE GLOBAL TEMPORARY TABLE QCUI_Temp_Trans
ON COMMIT DELETE ROWS [ON COMMIT PRESERVE ROWS]
AS
SELECT * FROM t_Department
删除时:
DROP TABLE QCUI_Temp_Trans
下面介绍在存储过程中使用临时表的例子:
CREATE OR REPLACE PROCEDURE temptest
(p_searchDate IN DATE)
IS
v_count INT;
str varchar2(300);
BEGIN
v_count := 0;
str:='drop table SETT_DAILYTEST';
execute immediate str;
str:='CREATE GLOBAL TEMPORARY TABLE SETT_DAILYTEST (
NACCOUNTID NUMBER not null,
NSUBACCOUNTID NUMBER not null)
ON COMMIT PRESERVE ROWS';
execute immediate str; ----使用动态SQL语句来执行
str:='insert into SETT_DAILYTEST (select naccountid,nsubaccountid from sett_dailyaccountbalance)';
execute immediate str;
END temptest;
分享到:
相关推荐
解决 Oracle 临时表空间满的问题需要通过查看当前数据库的默认临时表空间、查看当前临时表空间的大小、创建新的临时表空间、将新建的临时表空间设置为数据库的默认临时表空间、删除原来的临时表空间、创建新的临时表...
Oracle 临时表空间不足和批处理缓慢问题探讨 本文探讨了 Oracle 临时表空间不足和批处理缓慢问题的原因和解决方法。通过分析和测试,发现了问题的根源在于应用逻辑方面,具体来说是 SQL 语句的编写问题。通过编写...
本文将详细介绍Oracle临时表的创建方法、使用场景以及优缺点,帮助读者更好地理解和运用这一特性。 #### 二、Oracle临时表概述 Oracle临时表是一种特殊的表,用于存储临时数据,通常用于事务处理或特定会话期间的...
### Oracle临时表详解 #### 一、Oracle临时表概述 在Oracle数据库中,临时表是一种特殊类型的数据表,主要用于存储暂时性的数据。与永久表不同的是,临时表中的数据不会一直保留,而是根据不同的条件(如事务结束...
Oracle 临时表用法 Oracle 临时表是一种特殊的表结构,它可以在数据库中临时存储数据,用于实现一些特定的应用场景。下面是 Oracle 临时表的详细知识点: 创建临时表 创建临时表的语法为: ``` CREATE GLOBAL ...
"Oracle 临时表(事务级、会话级)" Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存一个会话或事务中的数据。当会话或事务结束时,临时表中的数据自动清空,但是临时表的结构和元数据还存储在...
Oracle 临时表空间是Oracle...总之,理解并正确使用Oracle临时表空间是确保数据库高效运行的关键。通过对临时表空间的合理配置和管理,可以有效地提升数据库的响应速度,降低系统资源消耗,从而优化整体的数据库性能。
Oracle临时表是数据库管理系统中的一种特殊表,它主要用于在会话期间存储临时数据,供当前会话使用。这种表在会话结束时会被自动删除,不会永久保存在数据库中,因此,它们对于处理大量中间结果或者进行复杂计算的...
临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用了临时表,存放的是和本会话相关的数据,没有人会傻乎乎地用临时表来保存本应该共享的数据。 with子查询实际上也是用了临时表,...
临时表的应用 1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。 2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个...
### Oracle 临时表空间管理与释放脚本解析 在Oracle数据库管理中,临时表空间(Temporary Tablespace)的管理是一项非常重要的任务。合理的管理和优化临时表空间不仅可以提高系统的性能,还可以帮助解决空间不足等...
Oracle中的临时表是一种特殊的数据结构,用于存储会话或事务期间的数据,这些数据仅对当前会话可见,并在特定条件下自动清除。Oracle提供两种类型的临时表:事务型和会话型。 事务型临时表在事务开始时创建,插入的...
### Oracle 临时表空间管理详解 #### 一、概述 Oracle 数据库中的临时表空间主要用于存储临时对象,如排序操作、表连接等过程中产生的临时数据。这些数据在事务结束后会被自动清除,不会占用永久存储空间。正确管理...
Oracle Temporary Tables,也称为Oracle临时表,是Oracle数据库系统中用于存储临时数据的特殊类型表。它们主要用于处理会话级别的数据,这些数据在特定会话或事务结束后会被自动清理,从而减少了对永久表的负担和...
**二、Oracle临时表** 临时表在Oracle中用于在单个会话中存储临时数据,这些数据只对创建它们的会话可见,会话结束时,临时表及其数据都会被自动删除。 1. **创建临时表**:使用`CREATE GLOBAL TEMPORARY TABLE`...
Oracle Temporary Tables,也称为Oracle临时表,是在Oracle数据库中用于临时存储数据的特殊表。它们主要用在处理大型数据集时提高性能,特别是在复杂的查询和存储过程中。临时表的生命周期和可见性根据创建时指定的...
本篇文章将深入探讨Oracle临时表的使用,并通过一个使用游标(CURSOR)返回结果集的例子来进一步理解其用法。 首先,让我们了解如何创建Oracle临时表。临时表的创建语法与普通表类似,但我们需要使用`GLOBAL ...
Oracle数据库中的临时表是一种特殊的表类型,主要用于存储在特定会话或事务期间产生的临时数据。与常规的永久表相比,临时表的数据不会永久保存,而是会在会话结束或事务完成时自动清除,无需用户手动删除。 1. **...
创建Oracle临时表的语法是`CREATE GLOBAL TEMPORARY TABLE`,并且可以指定`ON COMMIT`子句来决定数据何时清除,交易级别(Transaction)或会话级别(Session)。交易级别意味着在每次提交时清空表,而会话级别则是在...
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。