• Oracle-csv格式文件导入导出


    一:csv格式文件导出

     1、创建linux执行文件,例:law.sh

    文件内容如下:
    export NLS_LANG=编码格式----select userenv('language') from dual,可通过此语句在数据库查询得到,用于解决导出数据中文乱码
    
    sqlplus -s arms/ZC_gl_xt#db08@orcl <<EOF >/dev/null
    
    set echo off;
    set feedback off;
    set heading off;
    set verify off;
    set pagesize 0;
    set newp none;
    set trims on;
    set linesize 1500;
    set termout off;
    set trimout on;
    set trimspool on;
    set term off;
    spool ./law.csv 
    @./law.sql;
    spool off;
    exit;
    EOF
    
    内容说明:
    set colsep  ,         #分割符
    set feedback off      #回显本次sql命令处理记录条数
    set heading off       #输出标题
    set newp none         #设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none
    set pagesize 0        #输出每页行数,为了避免分页设置为0
    set linesize 200      #每行大小,如果设置太小,会分行,最好是超好输出最大值
    set trimout on        #去除标准输出每行的拖尾空格
    set termout off       #显示脚本中的命令的执行结果
    set echo on           #设置运行命令是否显示语句
    set numwidth 12       #输出number类型域长度

    2、创建导出数据控制文件(一个sql语句),例:law.sql

    select * from s_bch t where t.bch_level='2';

    二:csv格式文件导入

    1、创建linux执行文件,例:hn_poor_cif.sh

    内容如下:
    echo "loader data henan.csv" 
    sqlldr cmsii/cms5umx control=/cms/data/impdata/hn_poor_cif.ctl bad=/cms/data/impdata/hn_poor_cif.bad log=/cms/data/impdata/hn_poor_cif.log rows=1000 bindsize=10240000
    
    内容说明:
    control:规则控制文件位置,需自行创建
    bad:导入出错数据记录,执行程序后生成
    log:导入过程日志记录
    rows:每次导入行数
    bindsize:每次导入大小控制

    2、创建control控制文件,例:hn_poor_cif.ctl

    内容如下:
    load data CHARACTERSET ZHS16GBK 
    infile '/cms/data/impdata/cif_poor_inf_2020.csv'
    truncate into table cif_poor_inf_2020
    fields terminated by ','
    trailing nullcols (AREACODE,PROVINCE,CITY,COUNTRY,COUNTRYSIDE,VILLAGE,HZ_CIF_NAME,HBH,YHZGX,PKHSX,TPZT,HZ_ID_NO,CY_CIF_NAME,CY_ID_NO)
    
    内容说明:
    1:truncate into table,into table后面指定导入数据库表USER_INFO,且表名必须大写;
       insert :默认方式,在导入记录前要求表为空;
       append :在表中追加新导入的记录;
       replace :删除旧记录(等价delete from table语句),替换成新导入的记录;
       truncate:删除旧记录(等价truncate table语句),替换成新导入的记录;
    2:fields terminated by ',',解析的文件分隔符
  • 相关阅读:
    【转】C++ 实现线程池
    【转】C++ 实现reactor 模式
    【转】C++ 单例模式
    高并发的内存池——TLS MEMMORY POOL
    爬取某东商品数据
    查看解放号的一些Python岗
    查看前程无忧Python岗及一些可视化
    爬某牙小姐姐视频
    爬取某云音乐热歌榜
    键盘及鼠标记录程序
  • 原文地址:https://www.cnblogs.com/chunxiaozhang/p/15241073.html
Copyright © 2020-2023  润新知