日期:2014-05-17  浏览次数:20691 次

求助,关于SQL loader的问题,未曾遇到过,解决者高分重谢
数据文件格式如下(有5列数据),数据文件格式不能随意改动:
data.csv
0,   1,   a001,   name1,   a
1,     92,     aaaa,   name2,   b
3,     983,     dvdaa,name3,   c
要倒入数据的表定义为:
id   number(5),  
name   varchar(50)

这个表有两列,现在要把数据文件中的第二列和第四列倒入到表中,采用sql   loader的方式倒入,那么control   file如何写???

就是如何选择数据文件中的某几列倒入到表中的控制文件如何写?那位高人能指点一二,不胜感激!!!
 



------解决方案--------------------
需要用AWK文件转换出一个临时数据文件,然后做LOADER处理
------解决方案--------------------
1. cat data.csv | cut -d ', ' -f 2,4 > data1.csv
2. 做成control文件
OPTIONS(DIRECT=FALSE, ROWS=1000, ERRORS=0)
Load data
INFILE "data1.csv "
APPEND
INTO TABLE table1
FIELDS TERMINATED BY ", "
(
id INTEGER EXTERNAL,
name CHAR,
)

3. sqlloader

------解决方案--------------------
其实很简单 就是随便命名几个不存在的字段 后面加上 filler 即可,不用担心,这些字段sqlldr不会真的去跟表里面的字段比较的,不信您试试。
(
id0 filler,
id ,
id2 filler,
name CHAR
)