sqlloader中ctl文件相关参数

sqlloader中关于ctl控制文件的相关参数说明:

load data
CHARACTERSET 'UTF8'            //指定字符集为UTF-8,解决数据库乱码问题
infile 'D:\dat\test.dat'       //指定数据文件位置,通常使用下面的方式来指定需要入库的文件

/**
    * userid:ORACLE 用户名/口令@数据库
    * control 控制文件名,ctl文件中存放所有的sql文件
    * data文件中存放处理完的文件
    * rows -- 常规路径绑定数组中或直接路径保存数据间的行数      (默认:常规路径 64, 所有直接路径)
    * bindsize -- 常规路径绑定数组的大小 (以字节计)  (默认 256000)
    * readsize -- 读取缓冲区的大小               (默认 1048576)
    * errors -- 允许的错误的数目         (默认 50)
    *
    */

  String sql = "sqlldr userid=" + vrUser + "/" + vrPassword + "@" + vrDatabase + " control=./ctl/" + tablename
    + ".ctl data=./data/" + tablename
    + ".txt rows=15000 bindsize=10324000 readsize=10324000 errors=99999999";
  System.out.println("Start to load " + tablename + "!");
  Runtime runtime = Runtime.getRuntime();
 
   Process process = runtime.exec(sql);
   Thread.sleep(10000);


truncate into table table_name //指定装载方式和导入数据的表
fields terminated by ',' optionally enclosed by '"'  //字段之间的分隔值为逗号,界定符号为""
TRAILING NULLCOLS              //没有值的字段设置为空,解决空值问题
(
column1,
column2,
column3,
...
)

************* 以下是4种数据装载方式 *************

APPEND              原先的表有数据 就加在后面
INSERT              装载空表 如果原先的表有数据 sqlloader会停止 默认值
REPLACE             原先的表有数据 原先的数据会全部删除
TRUNCATE            指定的内容和replace的相同 会用truncate语句删除现存数据

你可能感兴趣的:(数据库相关)