zoukankan      html  css  js  c++  java
  • sqlldr使用

    一、写ctl文件

    首先,先写一个ctl文件(包含控件信息的文件,这里是oracle数据库的控制文件)文件名:测试.ctl

    ctl文件例:

    load data
    infile 'd:xxx.cvs'
    truncate
    into table aaaa
    fields terminated by ',' optionally enclosed by '"'
    TRAILING NULLCOLS
    (
    EMS_NO ,
    MODIFY_TIMES filler,
    PRE_EMS_NO,
    COP_EMS_NO,
    TRADE_CODE,
    TRADE_NAME CHAR(255),

    BEGIN_DATE timestamp "yyyy-mm-dd hh24:mi:ss.ff9",

    )

    文件内容说明:

    1、'd:ha2000HA2000xxx.cvs' 待导入的数据。也可以是 txt文件

    注意:导出xxx.cvs文件要注意把换行符去掉。不然有换行符的数据当成两行导入,会报错,一般报错2百多次就停止导入了。

    2、aaaa表名

    3、fields terminated by ',' optionally enclosed by '"'  分隔符:逗号,数据格式里有双引号。

    4、MODIFY_TIMES filler,  filler代表本列不导入,这样的话你建表时也不用建这个表

    5、TRADE_NAME CHAR(255),默认文本长度60,如果要长一点需自定义。

    6、BEGIN_DATE timestamp "yyyy-mm-dd hh24:mi:ss.ff9" ff9是毫秒,如果是从sql导出来的,就要加上这个,加上后oracle可以认识这个字段的格式, 导入时会自动将这个毫秒截取掉。

    二、执行一个命令,可以是bat文件

    sqlldr user/pass control='D:测试.ctl' log='D:测试.log' bad='D:错误文件名称.txt' errors=99999999

    1、user/pass用户名/密码

    2、control='D:测试.ctl' 命令执行文件(oracle数据库的控制文件)

    3、 log='D:测试.log' 随便定义一个日志文件

    4、bad='D:错误文件名称.txt'  错误文件

    5、errors=99999999 默认二百多错误就终止导入,这个是改变默认值。到99999999个文件才终止导入。

  • 相关阅读:
    java 深入理解jvm内存模型 jvm学习笔记
    java实体 和 xml相互转换
    clickhouse 离线/在线 安装和java通过jdbc链接
    clickhouse安装 Requires: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
    maven pom.xml详解
    elasticsearch 简单demo RestHighLevelClient LowLeveClient
    从一段时间段中获取所有日期
    hadoop 输入路径用正则表达式被默认处理为多个参数的问题
    对象变化影响map中的数据
    小技巧积累
  • 原文地址:https://www.cnblogs.com/xbding/p/5486892.html
Copyright © 2011-2022 走看看