`
阅读更多

 

在工作中用临时表从A库到B库导入LOB(大)字段,用临时表做中间表进行操作。

 

我的文章是以下两个文章相结合的产物,特在此说明:

前半部分出自:http://www.2cto.com/database/201109/106453.html

后半部分出自:http://www.iteye.com/topic/371390

 

具体内部如下(前半部分是介绍、后半部分是应用):

前半部分,临时表介绍:

       我们知道在数据库中除了可以创建永久表外,还可以建立临时表(temporary table)。那么为什么需要临时表呢?它给我们带来了什么优点?和永久表相比临时表有以下几个优点:

       1.临时表在操作上比永久表要更快。因为临时表不需要往编目表中插入条目,临时表的使用也不需要访问编目表,因此也没有编目表的争用。

       2.仅有创建临时表的app才可以存取临时表,在处理临时表时没有锁。因为临时表的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其他Session的临时表中的数据。因此,临时表不需要DML锁。

       3.如果指定Not Logged选项,处理临时表时不记日志。所以如果有仅在数据库的一个会话中使用的大量的临时数据,这些数据存入临时表能大大提高性能。

       4.临时表的数据不会永久存在(同永久表最大的区别),当一个会话结束或者事务结束的时候,数据库自动清除数据。另外Oracle临时表建立后,不会删除(和Sql-server的不同之处)。

 

临时表详细介绍
Oracle的临时表有两种类型:

临时表分为SESSION、TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION;而TRANSACTION级的临时表数据在TRANACTION结束后消失,即COMMIT/ROLLBACK或结束SESSION都会清除TRANACTION临时表数据。

       1.会话级临时表:(ON COMMIT PRESERVE ROWS)是指数据只在当前会话中有效的临时表。当关闭当前会话或者进行新的连接之后,数据表中的内容就会被清除。 

       2.事务级临时表:(ON COMMIT DELETE ROWS)是指数据只有在当前事务内有效。

 

后半部分,临时表应用:

两种临时表的语法:

一、SESSION级临时表
1、建立临时表

CREATE GLOBAL TEMPORARY TABLE temp_tbl(col_a VARCHAR2(30)) 
ON COMMIT PRESERVE ROWS 

 

2、插入数据

INSERT INTO temp_tbl VALUES ('test session table') ;

 

3、提交commit;
4、查询数据

SELECT * FROM temp_tbl ;

 

可以看到数据'test session table'记录还在。
结束SESSION,重新登录,再查询数据select *from temp_tbl,这时候记录已不存在,因为系统在结束SESSION时自动清除记录

 

二、TRANSACTION级临时表
1、建立临时表  

CREATE GLOBAL TEMPORARY TABLE temp_tbl(col_a VARCHAR2(30))
ON COMMIT DELETE ROWS 

 

2、插入数据

INSERT INTO temp_tbl VALUES ('test transaction table') ;

 

3、提交commit;
4、查询数据

SELECT * FROM temp_tbl ;

 

这时候可以看到刚才插入的记录'test transaction table'已不存在了;同样,如果不提交而直接结束SESSION,重新登录记录也不存在

 

 

 

分享到:
评论

相关推荐

    ORACLE多表关联的update语句

    而`tmp_cust_city` 是一个临时表,包含了客户服务部通过主动服务获取的更准确的城市信息。 1) 最简单的形式: 在这种情况下,我们假设`customers`表中所有`customer_id`小于1000的客户都位于北京。可以使用以下...

    oracle 移动表空间

    - **ALTER TABLESPACE方法**:这种方法适用于非SYSTEM表空间且不包含活跃回滚段或临时段的数据文件。首先,将表空间离线,移动数据文件,再使用`ALTER TABLESPACE RENAME DATAFILE`命令更改路径,最后恢复表空间并...

    xml导入Oracle表的简单方法

    1. **创建临时表**:为了处理XML数据,可能需要创建一个临时表,用于存储解析后的数据。 2. **创建存储过程**:编写一个存储过程,该过程读取XML文件,解析其内容,并将数据分批插入到目标表中。 3. **调用存储过程*...

    Oracle与Access表之间的导入和导出

    在某些场景下,可能需要在 Oracle 和 Access 之间进行数据迁移,比如整合数据、备份或临时数据存储。本文将详细讲解如何在 Oracle 的 FORM 程序中实现这两个系统之间的数据导入和导出。 首先,为了在 Oracle 和 ...

    Oracle查询表里的重复数据方法

    在Oracle数据库中,查询和处理重复数据是一项常见的任务,尤其在数据清洗和数据整合的过程中显得尤为重要。本篇文章将详细介绍如何在Oracle中查询和删除重复数据。 首先,我们要明确什么是重复数据。在一个表中,...

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

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

    Oracle EBS 11i库表结构

    8. **临时表(Temporary Tables)**:在执行某些复杂操作或临时存储中间结果时使用,一旦操作完成,数据就会被清除。 9. **序列(Sequences)**:提供有序的整数序列,常用于生成唯一的主键值。 10. **触发器...

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

    tom(口令:tom,默认表空间 users,临时表空间 temp 无空间限额 第一次登 陆修改密码) 2、用户间系统权限授予 . 用户system将create table,create session系统权限授予用户a,并且带有with admin option选项...

    mysql导数据到oracle

    在IT行业中,这种操作通常用于升级数据库系统、整合多个数据库或者在不同平台间转移数据。 描述虽然简洁,但暗示了这个过程可能涉及到数据转换、数据清洗以及使用特定工具或脚本来实现数据迁移。标签“mysql2oracle...

    ORACLE基本概念和术语

    - **临时表空间(Temporary Tablespace)**:用于存储临时数据,如排序操作的结果。 - **工具表空间(Tools Tablespace)**:用于存储工具程序使用的表。 - **用户表空间(Users Tablespace)**:用于存储用户...

    1Z0-063 12c oracle

    通过使用CREATE DATABASE命令创建容器数据库CDB1时,可以设定各种参数,如默认表空间、临时表空间、撤销表空间等,同时还能通过ENABLE PLUGGABLE DATABASE子句启用可插拔数据库功能。 在备份与恢复方面,Oracle 12c...

    Excel转Oracle

    将Excel数据转换到Oracle数据库是日常工作中常见的需求,这有助于将临时或静态的数据整合到一个集中式的系统中,便于进一步的处理和分析。 "Excel转Oracle"这个过程通常涉及到以下几个关键步骤: 1. 数据准备:...

    Oracle数据库SQL优化总结

    11. **减少对表的查询**:避免不必要的子查询,尤其是对同一表的重复查询,可以考虑使用JOIN或临时表。 12. **利用内部函数提高效率**:熟练运用Oracle的内置函数,可以简化复杂查询,提高执行速度。 13. **使用表...

    将excel数据导入到oracle数据库

    本文将详细介绍如何将Excel数据导入Oracle数据库,这是一个实用且重要的技能,尤其对于数据分析师、数据库管理员以及IT专业人员来说。Excel作为广泛使用的电子表格工具,常常被用作数据存储和处理的临时平台,而...

    构建最高可用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 DBA

    在Oracle 10g中,对临时表空间的管理有了新的突破。用户可以创建多个临时表空间,并将它们组合成一个临时表空间组,这为临时表空间的管理提供了更多便利。这种特性尤其适用于需要频繁进行临时操作的大规模数据库,...

    Oracle 性能优化之 SQL优化

    例如,可以通过预先创建视图或将查询结果存储在临时表中来实现这一点。 13. **利用Oracle内部函数提高SQL效率** - Oracle提供了许多内置函数,如NVL、COALESCE等,这些函数可以简化SQL语句并提高执行效率。合理...

    ETL-ODI(oracle data integrator)介绍

    Oracle Data Integrator (ODI) 介绍 Oracle Data Integrator (ODI) 是 Oracle 公司的一款数据集成工具,旨在将源数据整合并放入目标数据库/数据仓库的过程。ODI 的基本思路是充分运用源与数据 RDBMS(关系型数据库...

Global site tag (gtag.js) - Google Analytics