`

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文件的格式,这样可以减小出错的可能性,避免走很多弯路。

 

ksh脚本处理:

 

Ruby代码 复制代码 收藏代码
  1. #!/bin/ksh   
  2. DB_USER=tivan                               #DB USER   
  3. DB_PWD=tivan                               #DB PASSWORD   
  4. DB_SERV=orcl                                #DB SERVICE NAME   
  5. returnMessage=`sqlplus -s $DB_USER/$DB_PWD@$DB_SERV<<EOF   
  6. whenever sqlerror exit 1   
  7. whenever oserror exit 2   
  8. set pagesize 0 feedback off verify off heading off   
  9. set time off echo off   
  10. set pagesize 0   
  11. set linesize 2000   
  12. set trims on   
  13. set feedback off   
  14. set TERMOUT OFF   
  15. alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';   
  16. spool sp_test.txt   
  17. select PK_ID || '|' ||GRID_ID || '...' from tmp_jy_sys_table_col;   
  18. spool off   
  19. /   
  20. exit 3;   
  21. EOF`  
分享到:
评论

相关推荐

    spool常用设置

    ### Spool常用设置详解 在Oracle数据库管理与操作过程中,`spool`是一个非常实用的命令,主要用于将SQL*Plus的输出结果重定向到一个文本文件中,这对于数据备份、日志记录以及批量导出数据等工作场景尤为重要。下面...

    oracle spool

    #### 二、Spool常用选项 为了更好地控制输出格式和内容,`Spool`可以与一系列设置命令配合使用,这些设置命令可以修改输出的外观,例如列间隔、分隔符、页数等。下面是一些常用的设置命令: 1. **设置列间隔**:`...

    Oracle_spool_用法详解

    #### 二、Spool 常用命令及其解释 为了更好地理解和使用 `Spool` 命令,我们需要了解一些 SQL*Plus 的设置命令,这些命令可以帮助我们定制输出文件的格式。 1. **设置列分隔符** - **命令**: `set colsep ''` - ...

    Oracle9i spool续写实例

    Oracle的Spool功能是数据库管理员和开发人员常用的一种工具,用于将SQL查询结果或PL/SQL块的输出重定向到文本文件中,而非在屏幕显示。在Oracle 10g及更高版本中,Spool引入了`CREATE`, `REPLACE`, 和 `APPEND` 参数...

    操作系统安全:var spool cron.docx

    此外,还可以包含第7个年份字段,但这在大多数系统中并不常用。每个字段都可以使用特殊字符如*(任意值)、?(不关心)、-(范围)、/(步进)、,(枚举值)以及L、W和#等,来实现复杂的定时规则。 L代表“最后”,...

    SQL Plus 环境设置于常用命令.doc

    ### SQL Plus 环境设置与常用命令详解 #### SQL Plus 概述 SQL Plus 是 Oracle 数据库系统中一个非常强大的命令行工具,用于执行 SQL 和 PL/SQL 语句。它不仅支持基本的数据库查询功能,还提供了一系列增强功能,如...

    Oracle中常用的SqlPlus命令

    本文将深入解析SqlPlus中常用的命令,帮助用户更高效地进行数据库操作。 ### 一、执行SQL脚本 1. **SQL&gt; @[start]file_name** - 该命令用于执行指定的SQL脚本文件。`[start]`是可选参数,表示脚本执行的起始位置...

    oracle中常用的set命令

    Oracle 中常用的 SET 命令 Oracle 中的 SET 命令是 SQL*Plus 命令行工具中的一组命令,用于控制 SQL 语句的执行和输出结果的显示方式。这些命令非常实用,能够帮助开发者更方便地工作。 SET VERIFY OFF SET ...

    Oracle导入SQL脚本执行和常用命令大全

    Oracle 导入 SQL 脚本执行和常用命令大全 Oracle 导入 SQL 脚本执行和常用命令大全是一个非常重要的知识点,对于 Oracle 数据库的开发和维护人员来说非常有用。在本篇文章中,我们将介绍 Oracle 导入 SQL 脚本执行...

    oracle里的常用命令

    - `SPOOL`:将输出保存到文件,如`SPOOL output.txt`开始保存,`SPOOL OFF`结束保存。 - `PAUSE`:暂停输出,常用于在打印大量数据时暂停查看。 7. 清屏与帮助: - `CLEAR SCREEN` 或 `CLS`:清除屏幕。 - `...

    SPOOL1_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.pdf

    【SPOOL1_CRM产品经理需求规格说明书管理系统规格需求说明书模板.pdf】 本文档主要介绍了SAP R/3系统中关于采购处理的相关知识,特别是对系统的基本操作和使用进行了详尽的阐述,适用于CRM产品经理理解和掌握SAP ...

    oracle常用语句

    在Oracle数据库中,`SELECT`语句是最常用的查询工具之一,用于从数据库表或视图中检索数据。例如,可以通过以下命令查询`v$database`视图中的`name`字段: ```sql SELECT name FROM v$database; ``` 这条语句可以...

    SQLplus常用指令.doc

    ### SQLplus常用指令详解 #### 一、概述 SQLplus 是 Oracle 数据库提供的一款命令行工具,用于执行 SQL 语句、PL/SQL 块以及其他数据库管理任务。本文档旨在详细介绍 SQLplus 中的一些常用指令及其用法,帮助...

    oracle SQLPlus常用命令

    以下是一些常用的SQL*Plus命令及其详细解释: 1. **环境变量设置和显示**: - `show all`:展示所有68个系统变量的当前值,帮助用户了解SQL*Plus的工作环境。 - `show user`:显示当前已连接的数据库用户,确认...

    OL1.sqlplus环境和常用命令

    总结,SQL*Plus是Oracle数据库管理的重要组成部分,通过熟悉和掌握其环境设置与常用命令,能极大地提高数据库操作的效率。通过实践和练习,你可以更熟练地使用SQL*Plus来管理Oracle数据库,无论是数据的增删改查,...

    oracle常用命令

    ### Oracle常用命令详解 #### 一、SQL*Plus 命令 SQL*Plus 是 Oracle 数据库的一个标准工具,主要用于数据库的查询与管理。这里详细介绍了一些常用的 SQL*Plus 命令及其应用场景。 ##### 1. 执行一个SQL脚本文件 ...

    oracle 常用函数 sqlplus基本命令

    本文将深入探讨"Oracle常用函数"以及"SQL*Plus基本命令"这两个关键领域,旨在帮助你提升在数据库操作中的效率。 一、Oracle常用函数 1. 长度函数`LENGTH` `LENGTH`函数用于计算字符串的字符数,不区分字符类型(如...

    oracle sqlplus 常用命令大全.txt

    ### Oracle SQLPlus 常用命令详解 #### 1. 显示系统信息与用户信息 - **`show all`**:此命令用于显示系统级别的设置信息,包括但不限于环境变量、当前会话设置等。 - **`show user`**:显示当前登录数据库的用户名...

    Sqlplus的常用命令--oracle

    ### SQL*Plus常用命令详解——Oracle数据库管理必备技能 #### 连接与断开命令 - **连接命令**(`conn[ect]`):此命令用于建立与Oracle数据库的连接。基本语法为:`conn 用户名/密码@网络服务名`。其中,网络服务...

    Oracle中SQLPLUS的常用指令技巧

    以下是一些关于SQLPLUS常用指令的详细解说: 1. **连接数据库**: 使用`connect`命令登录到Oracle数据库,格式如下: ```sql connect username/password@service_name ``` 其中,`username`是数据库用户,`...

Global site tag (gtag.js) - Google Analytics