小弟我现在遇见一难题:
数据文件: kk.dat
123|abcd|
234|aaa
bbb|
345|cccc|控制文件 kk.ctl:
LOAD DATA INFILE 'kk.dat' APPEND INTO TABLE kk FIELDS TERMINATED BY "|"
(
NAME1 CHAR(60) ,
NAME2 CHAR(40) "replace(:NAME2, '\\r\\n', char(10))"
)希望导入到数据库是
name1 name2
123 abcd
234 aaaaa
bbbb
345 ccccc急急急 谢谢
数据文件: kk.dat
123|abcd|
234|aaa
bbb|
345|cccc|控制文件 kk.ctl:
LOAD DATA INFILE 'kk.dat' APPEND INTO TABLE kk FIELDS TERMINATED BY "|"
(
NAME1 CHAR(60) ,
NAME2 CHAR(40) "replace(:NAME2, '\\r\\n', char(10))"
)希望导入到数据库是
name1 name2
123 abcd
234 aaaaa
bbbb
345 ccccc急急急 谢谢
123,abcd
234,aaa
bbb,
345,cccc
这样的格式的
123|abcd|
234|aaa
|bbb
345|cccc|
这样才有可能导入到数据库是
name1 name2
123 abcd
234 aaaaa
bbbb
345 ccccc
能修改下吗?
如bbb内容是 "*&aaa&*文件
亲爱的朋友,能帮忙解决一下问题吗??
日期:&@@@@@@@@&" 这样格式的文本内容.
如你所见数据是以'|'来进行分割的。如果不能改,'bbbb'只能当成第二列name2的值还有我说得是第三行,不是第二行
因此你看到的 "aaa
bbb| "
这个就是一个值, 只是aaa后面有换行符号;
可以将导出的时候将换行符号替换成特殊符号execute procedure ifx_allow_newline('t');unload to kk.txt
select
name1,
replace (name2, '
', 'kkkk')
from kk;====
导入的时候设置Oracle 的控制文件 kk.ctl
LOAD DATA INFILE 'kk.txt' APPEND INTO TABLE kk FIELDS TERMINATED BY "|"
(
NAME1 CHAR(40),
NAME CHAR(20) "replace (:name, 'kkkk', '
')"
)执行导入命令:
sqlldr bsrv/bsrv control=kk.ctl bindsize=8192000 readsize=8192000 log=/home/bsrv/log/logdir/log_kk.log bad=/home/bsrv/log/baddir/bad_kk.bad errors=99999999 rows=100000