`

Oracle数据库中的临时表用法

阅读更多

这篇文章主要介绍了Oracle数据库中的临时表用法,希望对大家的学习和工作有所帮助。

 

 

一:语法

 

在Oracle中,可以创建以下两种临时表:

(1) 会话特有的临时表

 

CREATE GLOBAL TEMPORARY ( ) 

ON COMMIT PRESERVE ROWS;  

(2) 事务特有的临时表

 

CREATE GLOBAL TEMPORARY ( ) 

ON COMMIT DELETE ROWS; 

CREATE GLOBAL TEMPORARY TABLE MyTempTable  

所建的临时表虽然是存在的,但是如果insert 一条记录然后用别的连接登上去select,记录是空的。  

--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)

--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。  

 

 

二:动态创建

 

create or replace procedure pro_temp(v_col1 varchar2,v_col2 varchar2) as 

v_num number; 

begin 

select count(*) into v_num from 
user_tables where table_name=''T_TEMP'';   

--create temporary table 

if v_num<1 then 

execute immediate ''CREATE GLOBAL TEMPORARY TABLE T_TEMP ( 

COL1 VARCHAR2(10), 

COL2 VARCHAR2(10) 

) ON COMMIT delete ROWS''; 

end if;   

--insert data 

execute immediate ''insert into t_temp values
(''''''  v_col1  '''''',''''''  v_col2  '''''')'';   

execute immediate ''select col1 from t_temp'' into v_num; 

dbms_output.put_line(v_num); 

execute immediate ''delete from t_temp''; 

commit; 

execute immediate ''drop table t_temp''; 

end pro_temp;  

 

 

测试:  

 

15:23:54 SQL> set serveroutput on 

15:24:01 SQL> exec pro_temp(''11'',''22''); 

11   

PL/SQL 过程已成功完成。   

已用时间: 00: 00: 00.79 

15:24:08 SQL> desc t_temp; 

ERROR: 

ORA-04043: 对象 t_temp 不存在  

 

三:特性和性能(与普通表和视图的比较)

 

 

临时表只在当前连接内有效

临时表不建立索引,所以如果数据量比较大或进行多次查询时,不推荐使用

 

 

数据处理比较复杂的时候时表快,反之视图快点

在仅仅查询数据的时候建议用游标: open cursor for ''sql clause'';

分享到:
评论

相关推荐

    oracle临时表用法

    临时表数据库中临时表的深入研究,原理,用法

    Oracle 数据库 临时数据的处理方法

    当这个分区的大小不足以容纳排序后所产生的记录时,数据库系统就会将临时数据存放到临时表空间中。这就是临时表空间的来历。看起来好像这个临时表空间是个临时工,对于数据库的影响不会有多大。其实大家这是误解这个...

    Oracle数据库管理员技术指南

    7.8.7 恢复丢失的临时表空间 7.8.8 只读表空间丢失 7.8.9 索引表空间丢失 7.9 恢复联机重做日志 7.9.1 联机重做日志组某个成员丢失 7.9.2 非活动的重做日志组丢失 7.9.3 活动重做日志组丢失 7.10 恢复丢失的...

    Oracle数据库实验操作

    实验64:临时表和压缩数据表的使用 141 实验65:压缩存储数据 142 实验66:删除表中指定列操作 142 实验67:使用sqlldr加载外部的数据 143 实验68:使用utl_file包来将表的数据存储到外部文件 144 实验69:使用外部...

    从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员)

    同样在“父级”结构中,数据库有四种数据,他们分别是数据、索引、系统和临时表空间位置。你或许能看到所有的和数据库文件相关的数据都放在一个路径,或者分区里,所有的索引也是在一个路径下,同样系统和临时表空间...

    oracle数据库经典题目

    一、填空 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)... Oracle数据库中角色分为系统预定义的角色和用户自定义的...

    oracle数据库dba管理手册

    5.3.4 Oracle8i中引入的开发环境特性 102 5.3.5 确定数据库对象的大小 107 5.3.6 迭代开发 125 5.3.7 迭代列定义 126 5.4 管理技术 126 5.4.1 CASE工具 127 5.4.2 共享目录 127 5.4.3 项目管理数据库 127 5.4.4 讨论...

    Oracle数据库CPU使用率过高处理记录

     运行在Windows上的Oracle开发库的oracle进程CPU使用率保持在99%,服务器和数据库均反应缓慢。  二、排查思路  可能造成CPU使用率高的情况有:大量排序、大量SQL解析、全表扫描、Oracle Bug等。因此希望找到...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    15.3.4临时表空间的调整 15.3.5日志文件的调整 15.3.6 UNDO表空间的调整 15.4应用系统 15.4.1应用拆分 15.4.2 SQL执行过程 15.4.3 SQL解析 15.4.4 SQL优化 15.4.5 SQL行源生成 15.4.6 SQL执行 15.5本章小...

    Oracle+10g应用指导与案例精讲

    本书正是根据作者在高校和各种数据库培训班执教多年的教学经验,结合开发应用Oracle数据库的实践经验编撰而成的,书中编排的内容次序非常适合于读者学习和把握Oracle的脉络,书中所选择的问题都是在实际开发应用...

    21天学通Oracle

    5.6.4 查看临时表在数据库中的信息 86 5.6.5 临时表的应用场景 86 5.7 特殊的表dual 87 5.7.1 分析dual表 87 5.7.2 dual表的应用场景 87 5.7.3 修改dual表对查询结果的影响 88 5.8 本章实例 89 5.9 本章小结 ...

    Oracle数据库基础学习资料整合

    Oracle数据库基础 任务一 1、修改上机的计算机上的文件: product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora product\11.1.0\db_1\NETWORK\ADMIN\listener.ora 把文件中的HOST后面的名称更改为...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    1.2.5 默认的临时表空间 1.2.6 Undo表空间 1.2.7 服务器参数文件 1.2.8 后台进程 1.2.9 数据库管理员 1.3 Oracle Database 11g的基本数据类型 1.3.1 varchar2 1.3.2 数字 1.3.3 日期 1.3.4 时间戳 1.3.5 clob 1.3.6 ...

    Oracle 10g应用指导

    本书正是根据作者在高校和各种数据库培训班执教多年的教学经验,结合开发应用Oracle数据库的实践经验编撰而成的,书中编排的内容次序非常适合于读者学习和把握Oracle的脉络,书中所选择的问题都是在实际开发应用...

    oracle10g课堂练习I(1)

    目录 前言 1 简介 课程目标 1-2 ...临时表:注意事项 7-43 数据字典:概览 7-44 数据字典视图 7-45 数据字典:用法示例 7-46 小结 7-47 练习概览:管理方案对象 7-48 。。。。

    Oracle 主要配置文件介绍

    系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库 相关的环境变量就定义在/etc/profile 文件中 如下所示 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/...

Global site tag (gtag.js) - Google Analytics