`

ORACLE SPOOL 总结

 
阅读更多

spool常用的设置
set colsep' ';    //域输出分隔符
set echo off;    //显示start启动的脚本中的每个sql命令,缺省为on
set feedback off;  //回显本次sql命令处理的记录条数,缺省为on
set heading off;   //输出域标题,缺省为on
set pagesize 0;   //输出每页行数,缺省为24,为了避免分页,可设定为0。
set termout off;   //显示脚本中的命令的执行结果,缺省为on
set trimout on;   //去除标准输出每行的拖尾空格,缺省为off
set trimspool on;  //去除重定向(spool)输出每行的拖尾空格,缺省为off


注:LINESIZE要稍微设置大些,免得数据被截断, 它应和相应的TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。但是如果 LINESIZE设置太大,会大大降低导出的速度 。


通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
  方法一:采用以下格式脚本 
  set colsep '|' ------设置列分隔符

     set trimspool on

     set linesize 20000

     set pagesize 0

     set newpage 1

     set heading off

     set term off

     spool 路径+文件名

     select * from tablename;

     spool off
  方法二:采用以下脚本

     set trimspool on

     set linesize 20000

     set pagesize 0

     set newpage 1

     set heading off

     set term off

     spool 路径+文件名

     select col1 ||'|'|| col2 ||'|'|| col3 ||'|'|| col4 from tablename;

     spool off
  比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
  在实践中,通过方法一导出来的数据具有很大的不确定性 ,这种方法导出来的数据再由sqlldr 导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
  而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右 。经这种方法导出来的数据文件再由sqlldr 导入时,出错的可能性很小,基本都可以导入成功。
  因此,实践中建议大家使用方法二 手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。

 

set pagesize 0 feedback off verify off heading off
set time off echo off
set pagesize 0
set linesize 2000
set trims on
set feedback off
set TERMOUT OFF
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool sp_test.txt
select PK_ID || '|' ||GRID_ID || '...' from tmp_jy_sys_table_col;
spool off
 
分享到:
评论

相关推荐

    Oracle_spool_用法详解

    ### Oracle Spool 用法详解 #### 一、Spool 命令简介 `Spool` 是 Oracle SQL*Plus 工具中的一个重要命令,用于将查询结果或 SQL 脚本执行过程中产生的输出重定向到一个外部文件中。这对于批量处理数据、备份查询...

    oracle学习心得总结

    ### Oracle学习心得总结 在IT领域中,Oracle数据库因其强大的功能和广泛的适用性而备受青睐。对于初学者而言,掌握Oracle的基本操作是非常重要的一步。本文将根据提供的文档内容,总结和扩展Oracle数据库的基础知识...

    Oracle数据库学习日记-实用性最强的Oracle学习总结.docx

    **6.3 数据分组总结** - **用途:** 使用GROUP BY和HAVING对数据进行高级筛选和分析。 #### 七、多表查询 **7.1 多表查询,betweenand语句** - **用途:** 同时查询多个表,并使用BETWEEN AND进行范围查询。 - *...

    oracle技术总结(BEST).doc

    以下是对"Oracle技术总结(BEST)"文档中提到的一些关键知识点的详细说明: 1. **Oracle用户和权限**: - **SYS用户**:Oracle数据库在安装时会自动生成SYS用户,这是一个拥有最高权限的超级用户,具备sysDBA角色,...

    Oracle数据库命令 个人总结

    "Oracle数据库命令个人总结" Oracle数据库命令个人总结是徐博文在2014年3月整理的关于Oracle数据库的命令和心得的总结。下面是从该总结中提取的重要知识点: 1. 查询数据库数据文件的基本字段信息:使用DESC DBA_...

    Oracle数据库学习日记实用性最强的Oracle学习总结(推荐版本).doc

    这篇文档《Oracle数据库学习日记实用性最强的Oracle学习总结》旨在为初学者提供一个全面而实用的学习指南,涵盖从基础使用到高级管理的多个方面。 **1. 基本使用** 1.1 常用命令 Oracle数据库的日常操作涉及多种...

    Oracle基本知识总结.docx

    这里对 Oracle 基本知识进行总结,包括用户管理、归档模式、版本查看、闪回区信息、表空间管理、Spool 命令、脚本执行、登录方法等。 用户管理 在 Oracle 中,创建用户可以使用 Create user 命令,例如:Create ...

    oracle导出excel和excel导入oracle的经验总结.docx

    以下是关于"Oracle导出Excel和Excel导入Oracle"的知识点总结: 1. **Oracle导出Excel** - **方法一**:通过Oracle SQL Developer进行导出。在SQL Developer中,用户可以在SQL窗口执行查询,然后利用工具栏的...

    Oracle数据库备份与恢复总结

    ### Oracle数据库备份与恢复知识点总结 #### 一、EXP/IMP (导出与导入) **1.1 基本命令** - **EXP**: 用于从数据库导出数据。 - `exp username/password [参数]` - **IMP**: 用于向数据库导入数据。 - `imp ...

    Oracle总结

    ### Oracle优化总结与实践 #### 一、Oracle优化概述 在数据库管理领域,Oracle数据库以其高性能、高可靠性和丰富的功能而著称。然而,随着业务规模的不断扩大和技术需求的日益提高,如何有效地优化Oracle数据库...

    OracleDBA工作经验知识总结.pdf

    根据提供的文件内容,以下是关于Oracle DBA工作的知识总结,主要围绕Oracle数据库安装、用户登录、管理以及常见问题处理等知识点展开: 一、Oracle数据库的安装及用户创建 1. Oracle数据库安装后会自动创建sys和...

    Oracle知识点总结

    ### Oracle知识点总结 #### 1. Oracle 认证与安装 - **Oracle 认证**:Oracle 提供了多种认证方式来确保数据的安全性。在安装过程中,Oracle 会自动创建两个内置账户:`sys` 和 `system` 用户。 - **sys 用户**...

    5-Oracle常用知识总结.doc

    - **SPOOL**:将输出保存到文件,`SPOOL ON/OFF`控制开关,`SPOOL 文件路径`指定输出文件。 - **设置显示格式**:`LINESIZE`控制每行字符数,`PAGESIZE`设置每页行数。 4. **Oracle开发工具**: - **SQL*Plus**...

Global site tag (gtag.js) - Google Analytics