`
xm_koma
  • 浏览: 383458 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sqlplus的spool命令

 
阅读更多

关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西。)

对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如:
T_port表中:select t.dslamip||'|'||t.dslamno from t_port t where t.dslamip='200.224.49.5';

spool常用的设置
set colsep '|';    //域输出分隔符: 最好在SQL中自己指定。
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

set linesize 2500;     //设定每行的size

注:LINESIZE要稍微设置大些,免得数据被截断,它应和相应的TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。但是如果LINESIZE设置太大,会大大降低导出的速度,另外在WINDOWS下导出最好不要用PLSQL导出,速度比较慢,直接用COMMEND下的SQLPLUS命令最小化窗口执行。

对于字段内包含很多回车换行符的应该给与过滤,形成比较规矩的文本文件。通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:

方法一:采用以下格式脚本 
        set colsep '|'               --设置|为列分隔符
  set trimspool on
  set linesize 120
  set pagesize 2000         
  set newpage 1
  set heading off           
  set term off
        set num 18                 
        set feedback off           
  spool 路径+文件名
  select * from tablename;
  spool off

方法二:采用以下脚本 
      set trimspool on
  set linesize 120
  set pagesize 2000
  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导入时,出错的可能性很小,基本都可以导入成功。

 

导出文本数据的建议格式:
SQL*PLUS环境设置:

                SET NEWPAGE NONE
                SET HEADING OFF
                SET SPACE 0
                SET PAGESIZE 0
                SET TRIMOUT ON
                SET TRIMSPOOL ON
                SET LINESIZE 2500

                spool 路径+文件名

                select col1||','||col2||','||col3||','||col4||'..' from tablename; 
                spool off

分享到:
评论

相关推荐

    oracle sqlplus 中spool 的使用

    ### Oracle SQLPlus中Spool命令的使用详解 在Oracle数据库管理与开发过程中,SQLPlus作为一款功能强大的命令行工具被广泛使用。其中,`spool`命令是SQLPlus中的一个重要特性,它允许用户将SQL查询结果或命令输出到...

    oracle SQLPlus常用命令

    它提供了许多内置命令,使得用户能够高效地工作,而无需离开命令行界面。以下是一些常用的SQL*Plus命令及其详细解释: 1. **环境变量设置和显示**: - `show all`:展示所有68个系统变量的当前值,帮助用户了解SQL...

    SQLPLUS 基本命令

    ### SQLPLUS基本命令详解 #### 一、概述 SQLPLUS是Oracle数据库提供的一个非常实用的命令行工具,它不仅能够执行SQL语句,还可以通过设置各种环境变量来美化查询结果和方便地管理数据。本文将详细介绍SQLPLUS中的...

    SQLPLUS常用命令列表

    ### SQLPLUS常用命令列表 #### 一、简介 SQL*PLUS是Oracle数据库系统的一个非常重要的工具,主要用于执行SQL语句、脚本文件等,并能够帮助用户进行数据查询、管理及编辑等工作。本文将详细介绍SQL*PLUS中的一些...

    ORACLE SQLPLUS 命令大全

    Oracle SQLPlus 命令大全 Oracle SQLPlus 命令大全是 Oracle 数据库管理系统中的一种命令行工具,提供了丰富的命令来管理和操作数据库。下面是 Oracle SQLPlus 命令大全的知识点总结: 一、HELP 命令 HELP 命令...

    SQLPLUS命令的使用大全

    使用`SPOOL file_name`命令可以将SQLPLUS的输出重定向到指定的文件中。这在需要将查询结果或整个会话记录保存下来以供后续分析或分享时非常有用。 ### 5. 停止输出到文件 相对应的,`SPOOLOFF`命令则用于停止将...

    SQLPlus命令使用大全PDF

    这个“SQLPlus命令使用大全PDF”很可能是为用户提供了一个全面的指南,涵盖了各种SQLPlus操作和命令。让我们深入探讨一下SQLPlus的一些核心功能和常见命令。 1. **连接数据库**: 使用`CONNECT`命令连接到Oracle...

    SqlPlusSpoolPaging

    Spool命令允许我们把SqlPlus的输出重定向到一个文件,而不是直接在命令行界面显示。例如,我们可以使用以下命令开始spooling到一个名为"data.csv"的文件: ```sql spool data.csv ``` 接着,我们可以执行SQL查询来...

    SQLPLUS命令查询文档

    8. **输出重定向**:`SPOOL`命令可以把SQLPLUS的输出重定向到一个文件,这对于记录查询结果或者生成报告非常有用。 9. **游标操作**:通过`DECLARE CURSOR`, `OPEN`, `FETCH`, 和 `CLOSE`等命令,可以在SQLPLUS中...

    SQLPlus命令使用大全

    ### SQLPlus命令使用大全 #### 一、概述 SQLPlus是Oracle数据库提供的一个非常实用的命令行工具,它不仅能够执行SQL语句,还可以通过一系列内置命令帮助用户更高效地管理数据库。本文将详细介绍SQLPlus中常用命令...

    sqlplus 命令大全 oracle 数据库 命令查询

    Oracle SQLPlus 命令大全 SQLPlus 是 Oracle 数据库的客户端工具,用于与 Oracle 数据库进行交互。在 SQLPlus 中,可以运行 SQL 语句和 SQLPlus 命令。SQL 语句包括 DML、DDL、DCL 语句,它们执行完后,都可以保存...

    Oracle sqlplus命令的使用大全

    4. **Spool命令**: `SPOOL file_name`命令可以将屏幕输出重定向到指定的文件,包括输入的SQL语句和结果。而`SPOOL OFF`则关闭spool功能,确保内容被写入文件。 5. **显示表的结构**: `DESC`(描述)命令用于...

    oracle sqlplus 常用命令大全.txt

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

    SQLPLUS命令的使用大全.txt

    本篇文章将深入探讨SQLPLUS命令的使用大全,帮助你更好地理解和操作Oracle数据库。 1. **启动SQLPLUS** 要启动SQLPLUS,你需要在命令行界面输入`sqlplus [用户名/密码@连接标识符]`。例如,如果你的用户名是`scott...

    SQLPLUS命令.rar

    2. `SPOOL`命令:将输出重定向到文件,如`SPOOL output.txt`开始记录输出,`SPOOL OFF`停止记录。 五、SQLPLUS格式化输出 1. `SET LINESIZE`:设置每行的最大字符数。 2. `SET PAGESIZE`:设置每页显示的行数。 3. ...

    SQLPLUS命令使用大全

    ### SQLPLUS命令使用大全 #### 一、概述 SQL*Plus是Oracle提供的一个非常强大的命令行工具,用于访问和管理Oracle数据库。它不仅能够执行SQL语句,还提供了丰富的功能来帮助用户更好地管理和查看数据。SQL*Plus...

    Oracle的SQLPLUS命令的使用大全

    - **描述**:如果之前使用了SPOOL命令将结果输出到文件,则需要使用此命令来停止输出并关闭文件。 - **示例**: - `SQL> SPOOLOFF` ##### 6. 显示表结构 - **语法**:`SQL> desc table_name` - **描述**:此命令...

Global site tag (gtag.js) - Google Analytics