小弟我现在遇见一难题:
数据文件: 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急急急   谢谢

解决方案 »

  1.   

    能不能对数据文件进行处理呢?很容易处理成:
    123,abcd 
    234,aaa 
    bbb, 
    345,cccc 
    这样的格式的
      

  2.   

    第三行得数据是不是有问题啊?
    123|abcd| 
    234|aaa 
      |bbb 
    345|cccc| 
    这样才有可能导入到数据库是 
    name1  name2 
    123    abcd 
    234      aaaaa  
                bbbb 
    345      ccccc 
    能修改下吗?
      

  3.   

    第二行数据是没有问题的!  从Informix数据库导出的时候他的时候是有格式的, 导入的时候也是要有这样的格式
    如bbb内容是  "*&aaa&*文件
     
       亲爱的朋友,能帮忙解决一下问题吗??
                              日期:&@@@@@@@@&" 这样格式的文本内容. 
      

  4.   


    如你所见数据是以'|'来进行分割的。如果不能改,'bbbb'只能当成第二列name2的值还有我说得是第三行,不是第二行
      

  5.   

    谢谢todayandtomorrow 朋友   我的数据格式中  aaa 与  bbb 是当做name2 值进行导入的~~
    因此你看到的 "aaa
       bbb|  "
    这个就是一个值, 只是aaa后面有换行符号;
      

  6.   

    对于换行符方式已经解决; 
    可以将导出的时候将换行符号替换成特殊符号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