`

Oracle中的临时表用法汇总

阅读更多

1.语法
在Oracle中,可以创建以下两种临时表:

1)会话特有的临时表

CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )

ON COMMIT PRESERVE ROWS;

2)事务特有的临时表

CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )

ON COMMIT DELETE ROWS;

CREATE GLOBAL TEMPORARY TABLE MyTempTable

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

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

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

 

2.动态创建
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不存在

 

3.特性和性能
(与普通表和视图的比较)临时表只在当前连接内有效临时表不建立索引,所以如果数据量比较大或进行多次查询时,不推荐使用数据处理比较复杂的时候时表快,反之视图快点在仅仅查询数据的时候建议用游标: open cursor for 'sql clause'。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle 临时表用法汇总

    临时表的应用 1)、当某一个SQL语句关联的表...可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。 2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。

    简单理解数据库临时表

    ### 数据库临时表详解 #### 一、临时表的概念与作用 在数据库操作过程中,我们经常会遇到需要存储一些中间结果或临时数据的情况。...在实际开发和运维工作中,掌握临时表的使用方法是非常重要的。

    Oracle 表空间查询与操作方法

    - 新创建的会话将使用此临时表空间作为其默认临时表空间。 6. **更改表空间的状态** ```sql ALTER TABLESPACE test READ WRITE; ``` **解释**: - 更改表空间的状态为读写模式。 - 表空间可以处于不同的...

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

    在Oracle数据库中,临时数据的处理是数据库管理的重要组成部分,特别是在执行涉及排序、分组、汇总和索引等复杂操作时。临时数据主要是由这些操作产生的中间结果,例如,当用户对数据进行Order BY排序时,数据库需要...

    释放TEMP表空间占用硬盘空间

    ### 一、Oracle临时表空间简介 Oracle数据库中的临时表空间主要用于存储临时对象,如排序操作、汇总统计、临时表等。这些操作在执行完毕后,数据会自动从临时表空间中清除,不会永久保存。然而,在高并发或大容量...

    Oracle日常维护故障定位故障排除

    3. 临时表空间无法扩展:临时表空间满时,数据库操作可能暂停。确保有足够的磁盘空间,并合理设置临时表空间的自动扩展属性。 二、数据库功能/性能异常 4. RMAN备份挂起:未及时打补丁可能导致RMAN备份过程中出现...

    oracle存储过程使用游标对多表操作例子

    给定的存储过程“UpdateTempInventoryM”旨在更新一个名为“tmp_inventorym”的临时表,该表汇总了不同业务操作(如收货、发货、借出等)后的库存状态。过程接收五个参数:`DateMMin`、`HasBlin`、`HasQtyin`、`...

    ORACLE-select-query.rar_oracle_多表查询

    本压缩包“ORACLE-select-query.rar”专注于讲解Oracle数据库中的查询技术,特别是多表查询、子查询以及高级子查询。下面将详细探讨这些关键知识点。 首先,基础查询SQL语句是所有数据库操作的基础,它涵盖了SELECT...

    初学者常用Oracle sql语句

    在Oracle数据库中,根据不同的权限和需求,可以使用以下几种方法来查询表名: 1. **查询当前用户所拥有的表:** ```sql SELECT table_name, tablespace_name, temporary FROM user_tables; ``` 这条SQL语句...

    oraclesql面试题

    题目中提到了全局临时表的创建和使用,这是一种在会话期间可见但在会话结束时会被自动删除的特殊类型表。可以通过`ON COMMIT DELETE ROWS`或`ON COMMIT PRESERVE ROWS`选项控制其行为。全局临时表非常适合存储临时...

    oracle 分析函数学习笔记

    在描述中提到的场景中,有几种不同的方法可以实现数据统计,包括通过程序处理、使用临时表和包、标准SQL的UNION以及Oracle特有的分析函数。每种方法都有其优缺点。例如,程序处理方法与数据库无关,但增加了开发工作...

    ORACLE 合辑

    **使用方法:** - 在SQL语句中使用`:variable`的形式代替具体的值,例如:`SELECT * FROM table WHERE id = :id`。 - 在Java等编程语言中,通过PreparedStatement等API传递参数。 #### Sequence **概念及作用:** ...

    ORACLE__SQL语句教学

    通过本文档的学习,您应该已经掌握了Oracle SQL中最基本的SELECT语句的使用方法。这些基础知识对于任何希望进一步探索Oracle数据库技术的人来说都是至关重要的。随着经验的积累,您可以逐渐学习更复杂的SQL概念和...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     6.6.4 查询临时表空间中临时文件的信息  6.6.5 查询表空间的空闲空间大小  6.6.6 查询数据段信息  6.7 在OEM中管理表空间  6.7.1 创建(永久)表空间  6.7.2 扩展表空间  6.7.3 修改表空间的空间使用...

    Oracle课堂笔记(很全很详细的Oracle笔记)

    根据提供的信息,我们可以总结出以下关于Oracle的相关知识点...以上内容概述了Oracle数据库的基础概念、管理工具、内存结构以及SQLPlus的基本使用方法。这些知识点对于学习Oracle数据库管理和维护具有重要的指导意义。

    ORACLE SQL 高级编程.pdf (全)

    3. 高级数据定义语言(DDL):在创建和修改数据库结构时涉及的高级概念,例如动态SQL、索引的创建与管理、临时表的使用、分区技术等。 4. 视图、存储过程和函数:深入了解如何创建和管理数据库视图,以及编写存储过程...

Global site tag (gtag.js) - Google Analytics