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语句删除现存数据

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值