利用sqlldr导入记录时,遇到数据中未null,无法导入的问题
1、数据表结构如下图:
2、使用的sqlldr语句如下:
load data infile 'E:\dwTest\c_container_dev_utf8.txt' append into table C_CONTAINER_DEV fields terminated by ',' OPTIONALLY ENCLOSED BY '"' --TRAILING NULLCOLS ( RECORD_ID , CONTAINER_TYPE_CODE , CONTAINER_ID , MP_ID , EQUIP_CATEG , EQUIP_ID , INST_LOC OPTIONALLY ENCLOSED BY '"' , --源文件有双引号,这里去掉 INST_DATE, ORG_NO , IN_ROW , IN_COLUMN , BOX_COL , BOX_ROW )
3、导入时出现问题:
4、想了很多办法都没有实现插入null,无奈之下,对该列不做chul,并修改ctl文件为(变化之处在第14行):
load data infile 'E:\dwTest\c_container_dev_utf8.txt' append into table C_CONTAINER_DEV fields terminated by ',' OPTIONALLY ENCLOSED BY '"' --TRAILING NULLCOLS ( RECORD_ID , CONTAINER_TYPE_CODE , CONTAINER_ID , MP_ID , EQUIP_CATEG , EQUIP_ID , INST_LOC OPTIONALLY ENCLOSED BY '"' , --源文件有双引号,这里去掉 INST_DATE FILLER, --- 下面的 "Something Not To Be Loaded" 将不会被装载 (--INST_DATE "to_date(:INST_DATE,'yyyy-mm-dd hh24:mi:ss')",) ORG_NO , IN_ROW , IN_COLUMN , BOX_COL , BOX_ROW )
然后再次执行sqllder语句:sqlldr test/1@127.0.0.1:1521/orcl control=E:\\dwTest\\loader.ctl log=E:\\dwTest\\loader.log,成功了,然后在导入的数据库中修改下,这个很简单了
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、问题说明
sqlldr导入数据时,速度非常快,用过的人都知道;但今天在导入数据时,发现导入的数据含有单引号,并不是我需要的,正确的数据应该不含有单引号
2、网上有解释,不知是我找的方式不正确,还是运气不佳,找到的都是双引号的问题,也确实可以解决, OPTIONALLY ENCLOSED BY '"'
但单引号没有找到对应的解决方案,我自己修改了下,但始终都没有成功
3、最后通过多次尝试,重要搞定,原来是应该OPTIONALLY ENCLOSED BY "'"
4、比较了下,解决双引号是用 单引号中一个双引号 解决单引号是用 双引号中一个单引号