使用sqlloader导入数据文件时,如何将1条数据分割存到数据库对应的2个字段中,比如一个时间数据201007,数据库中的字段为year,和month   将2010存储到year中  将07存储到month中

解决方案 »

  1.   

    使用sqlldr然后使用函数是可以实现的1.创建测试表
    create table testym(year varchar2(20),month varchar2(20));2.写控制文件test.ctl
    load data
    infile *
    into table testym
    Append
    fields terminated by ','
    trailing nullcols
    (
    year "substr(:year,1,4)",
    month "substr(:year,5,2)"
    )
    begindata
    200910
    2010023.使用sqlldr
    C:\>sqlldr test/test control=test1.ctl
      

  2.   

    .....
    year position(01:04)
    month position(05:06)
    ......
      

  3.   

    http://yumianfeilong.com/html/2007/03/20/49.html
      

  4.   

    感谢你的解答,但实际问题并不是这样的,客户给我们一个txt文件,文件中数据为:****,***,201007,***  我们需要把这个日期201007拆分放到year和month中
      

  5.   

    可以在调用sqlldr之前对文件进行处理,将字段拆分后再入库,如在linux环境下:
    awk -F, '{print $1","$2","substr($3,1,4)","substr($3,5,2)","$4}' load.txt > test.txt然后构建一个sqlldr控制文件就不用说了吧