zoukankan      html  css  js  c++  java
  • spool

    一、常用设置

    set lin 1000    --一行可容纳字符数{80|n};输出大于设置值,则折行显示
    set wrap on    --输出行长度大于设置长度时(set lin n设置);值为on,多余字符另起一行显示,否则多余字符将被切除,不予显示
    set pages 100    --设置每页行数,值为0时,输出为一页且不显示列标题,为避免分页,可设定为0
    set newpage none  --设置页与页之间的分隔{1|n|none};值为0时在每页开头有一个小黑方框;值为n时在页和页之间隔着n个空行;为none时,在页和页之间没有任何间隔
    set heading off       --是否显示列标题,缺省为on
    set timing on      --显示每个sql语句花费的执行时间
    set echo off        --在用start执行一个sql脚本时,是否显示脚本中正在执行的sql语句
    set feedback off      --是否回显本次sql命令处理的记录条数,缺省为on
    set termout off       --是否在屏幕上显示输出的内容,或脚本中的命令的执行结果,缺省为on
    set trimout on        --去除标准输出每行后面多余的空格,缺省为off
    set trimspool on     --去除重定向(spool)输出每行的拖尾空格,缺省为off
    set null text      --显示时,用text值代替null值;
    set serveroutput off --是否显示用dbms_output.put_line包进行输出的信息
    set verify off     --是否显示替代变量被替代前后的语句;
    set colsep ''           --域输出分隔符

    二、应用

    工作运用时导出文本数据的常用格式:
    set lin 1000 pages 0 newpage none heading off feedback off echo off trimout on trimspool on
    set echo off feedback off trimout on trimspool on lin 1000 pages 0
    set colsep '|' echo off feed off term off heading off trims off trimspool on linesize 10000 pagesize 0 newpage 1
    spool 路径+文件名
    --需要执行的sql代码
    spool off

    输出规则文件:
    方式一:
    set colsep '|' trimspool on lin 120 pages 2000 newpage 1 heading off term off feedback off num 18   
    spool 路径+文件名
    select * from tb_name;
    spool off
    方式二:
    set trimspool on lin 120 pages 2000 newpage 1 heading off term off
    spool 路径+文件名
    select col1||','||col2||','||col3||','||col4||'..' from tb_name;
    spool off
    注:方法一采用设定分隔符方式,方法二将分隔符拼接在select语句中,即手工控制输出格式。 实践中,发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sqlldr导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,且导出的数据文件很大。而方法二导出的数据文件格式很规整,数据文件的大小也比方法一小很多。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。

    脚本实现:spool_test.sh
    #!/bin/sh
    db_user=test
    db_pwd=oracle
    db_serv=orcl
    sqlplus -s $db_user/$db_pwd@$db_serv <<EOF
    set trimspool on lin 120 pages 2000 newpage 1 heading off term off
    spool test.txt
    select id||'|'||name||'|'||type||'|'||to_number(to_char(sysdate,'yyyymmdd')) from t;
    spool off
    EOF

  • 相关阅读:
    iOS UITextField限制输入长度
    SpringBoot 统一异常处理
    idea+springboot+freemarker热部署
    JAVA 实现链表
    mysql 添加新用户 赋予权限
    Spring MVC 集成 Redis集群
    js获取当前日期时间及其它操作
    MySQL Error Codes MYSQL的错误代码
    js数组 删除元素
    JS table form 序列化提交
  • 原文地址:https://www.cnblogs.com/zfox2017/p/6509106.html
Copyright © 2011-2022 走看看