精华内容
下载资源
问答
  • spool 命令详解(Oracle数据库)

    千次阅读 2020-03-05 14:31:02
    记录 数据库命令 操作,并且储存在txt文件中 1、启动 spool 命令 SQL> spool path; path是创建记录命令的文件的绝对路径 2、clear screen 命令 SQL> clear screen; clear screen 命令用于清屏,但不会清除...

    记录 数据库命令 操作,并且储存在txt文件中

    1、启动 spool 命令

    SQL> spool path;
    

    path是创建记录命令的文件的绝对路径

    2、clear screen 命令

    SQL> clear screen;
    

    clear screen 命令用于清屏,但不会清除txt文件里的记录

    3、关闭 spool 命令

    SQL> spool off;
    

    spool off 命令用于关闭txt文件的写入

    4、对齐表命令

    SQL> set linesize 999;
    SQL> set pagesize 999;
    

    set linesize 999 用于输出每页行数,缺省值为 999

    set pagesize 999 用于输出一行字符个数,缺省为 999

    展开全文
  • Oracle中SPOOL命令使用方法详解

    万次阅读 2018-08-31 17:26:39
    set feedback off:回显本次sql命令处理的记录条数,缺省为on set pagesize 0:输出每页行数,缺省为24,为了避免分页,可设定为0 set termout off:显示脚本中的命令的执行结果,缺省为on set trimout on:去除...

    举例:test.sh

     代码如下复制代码

    #! /bin/sh

    sqlplus -s scott/tiger<<EOF
     set head off
     set linesize 20000
     set echo off
     set feedback off
     set pagesize 0
     set termout off
     set trimout on
     set trimspool on
      spool /home/test.txt
       select empno || '|' || ename || '|' || job || '|' || 
       mgr || '|' || hiredate || '|' || sal || '|' || 
       comm || '|' || deptno from emp;
      spool off
      exit;
    EOF

    spool常用的设置:
    set head off:输出域标题,缺省为on
    set linesize 20000:linesize可以设置的大点,防止一行长度不够
    set echo off:显示sqlplus中的每个sql命令本身,缺省为on
    set feedback off:回显本次sql命令处理的记录条数,缺省为on
    set pagesize 0:输出每页行数,缺省为24,为了避免分页,可设定为0
    set termout off:显示脚本中的命令的执行结果,缺省为on
    set trimout on:去除标准输出每行的拖尾空格,缺省为off
    set trimspool on:去除重定向(spool)输出每行的拖尾空格,缺省为off

    补充:pool命令实现的两种方法比较

    要输出符合要求格式的数据文件只需在select时用字符连接来规范格式。比如有如下表

     代码如下复制代码


    SQL>; select id,username,password from myuser;//测试表
    1 John       1234
    2 Jack       12345
    3 Rose       2345
    4 Joe        384657
    5 Tom        384655
    6 Jordan     384455

    要输出符合1,John,1234,这样的数据格式就用select id||','||username||','||password||',' from myuser这样的语句。

     代码如下复制代码

    SQL>; select id||','||username||','||password||',' from myuser;
    1,John,1234,
    2,Jack,12345,

    写个下面这样的脚本就行可以输出符合要求格式的数据至文件中,不会含有其它不需要东西,只有数据部分。


    --脚本文件名为expmyusr.sql,存数据的文件名为e:\exp.txt

     代码如下复制代码

    set echo on            --是否显示执行的命令内容  
    set feedback off       --是否显示 *   rows   selected  
    set heading off        --是否显示字段的名称
    set verify off         --是否显示替代变量被替代前后的语句。fil
    set trimspool off      --去字段空格
    set pagesize 1000      --页面大小
    set linesize 50//linesize设定尽量根据需要来设定,大了生成的文件也大
    define fil= 'e:\exp.txt'
    prompt *** Spooling to &fil
    spool &fil
    select id||','||username||','||'"'||password||'"' from myuser;
    spool off;

    --执行过程
    SQL>; @e:\expmyusr.sql
    *** Spooling to e:\exp.txt
    1,John,"1234"
    2,Jack,"12345"
    3,Rose,"2345"
    4,Joe,"384657"
    5,Tom,"384655"
    6,Jordan,"384455"

    检查可知结果符合要求。

    Oracle SPOOL的两种方法之对比

    通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:

    方法一:采用以下格式脚本 

     代码如下复制代码

    set colsep '' ------设置列分隔符
    set trimspool on
    set linesize 120
    set pagesize 2000
    set newpage 1
    set heading off
    set term 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语句中,即手工控制输出格式。


    在实践中,我发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sql ldr导入的时候出错的可能性在95%以上,尤其?大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。


    而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。


    因此,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。

    展开全文
  • oracle的Spool命令

    千次阅读 2015-02-13 18:12:51
    使用spool命令实行将sql*plus中的输出的结果复制到一个指定的文件中,或者把查询的结果 发送到打印机中,直接使用spool off命令为止。 spool命令的语法如下: spool [file_name [create|replace|append] off|out]...

    使用spool命令实行将sql*plus中的输出的结果复制到一个指定的文件中,或者把查询的结果

    发送到打印机中,直接使用spool off命令为止。

    spool命令的语法如下:
    spool [file_name [create|replace|append] off|out]


    其中file_name指定一个操作系统文件

    create将创建一个指定的file_name文件
    replace如果指定的文件已经存在,则替换该文件
    append将内容附加到一个已经存在的文件中
    off停止将sql*plus中的输出结果复制到file_name文件中,并关闭该文件。
    out启动该功能,将sql*plus中的输出结构复制到file_name中。


    实例如下:

    在我的电脑e盘中不存在query.sql文件

    在sql*plus中如下的操作

    在我的端脑e盘中找到query.sql文件,代开该文件,文件的内容如下:


    该文件不仅记录的你查询的结果的信息,同时也记录了你的查询的语句。

    展开全文
  • Oracle中Spool 命令使用方法 对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中。 近期在进行Oracle数据库备份的时候,由于数据库安装时出现问题,在进行逐步排查过程时...

    Oracle中Spool 命令使用方法

    对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中。

    近期在进行Oracle数据库备份的时候,由于数据库安装时出现问题,在进行逐步排查过程时,为了方便,将执行的相关语句在控制台的结果信息都输出到日志文件,以便能及时反馈到Oracle相关支持部门进行问题解决。

    Oracle中Spool 命令使用方法

    方法/步骤

    首先需要明白Spool是Oracle的命令而不是sql语句。

    Spool命令是将在这期间oracle所有的操作结果写入到指定的文件中。其实可以理解为spool命令将创建一个新文件,在接下来对oracle所有的操作及操作接口都将输入到该文件中。
    在这里插入图片描述

    1、使用Spool命令前期准备

    当前需要对Spool进行一些设置。常用的设置有如下几种其解释如图:
    在这里插入图片描述

    2、创建接收文件

    前期工作准备完成,接下来就是创建接收信息的文件,如我们创建一个文件名为moreinfo.log的接收文件。
    在这里插入图片描述

    3、执行操作

    接下来,我们就可以进行相关操作了,比如查询一个表的数据等
    在这里插入图片描述

    4、关闭Spool

    在对数据库操作完成后,接下来就是关闭Spool命令并将信息更新到创建的文件中。这样我们就讲操作数据库相应的结果写入到moreinfo.log中了。
    在这里插入图片描述

    5、查看文件是否已经生成。

    我们需要先退出sqlplus,在进行ls,查看文件是否已经生成。
    在这里插入图片描述

    展开全文
  • Oracle如何使用spool导出utf8字符集的文本文件 --cmd里的字符集 chcp 65001 就是换成UTF-8代码页 ...
  • Oracle Spool的用法小结

    2011-04-04 00:34:00
    方法有很多种,比较常用的就是spool命令: 要输出符合要求格式的数据文件只需在select时用字符连接来规范格式。比如有如下表 SQL>; select id,username,password from myuser;//测试表  1 John 1234  2 ...
  • ORACLE SPOOL

    2013-04-12 09:39:06
    关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西。) 对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如: select taskindex||'|'||commonindex||'|'||tasktype||'|'||to_number...
  • oracle中spool的用法小结

    千次阅读 2011-08-19 02:31:12
    在生产中常会遇到需要将数量比较大的表值导入... 方法有很多种,比较常用的就是spool命令: 要输出符合要求格式的数据文件只需在select时用字符连接来规范格式。比如有如下表  SQL>; select id,username,password from
  • oracle中spool将查询的数据写入文件

    千次阅读 2013-07-25 15:12:34
    set echo on --是否显示执行的命令内容 set feedback off --是否显示 * rows selected set heading off --是否显示字段的名称 set verify off --是否显示替代变量被替代前后的语句。fil set trimspool off --去...
  • 如果此时执行命令时出现乱码可能是因为本机的NLS_LANG参数和Oracle服务器不一致。 三. 客户端关于Oracle的字符集编码设置   客户端与服务器端字符集不一致时可能导致 cmd 或者 shell 显示乱码: ...

空空如也

空空如也

1
收藏数 10
精华内容 4
热门标签
关键字:

oraclespool命令