已建好的表TEST中有五个字段名:ID,value1,value2,value3,value4.
    在EXCEL中有3列数据,共300行如下:
    1 12 322
    1 5  54
    ......
    1 72 393
现在想将EXCEL中的这3列数据导入到表TEST中,其中第一列数据放入ID字段下;第2和3列数据放在value1字段下,并用逗号分隔。如下:
        ID   value1
        1    12,322
        1    5, 54
          ......
        1    72,393
    请教高手,如何用sqlldr来实现啊?控件文件怎么写啊?或者需要怎样的数据格式?

解决方案 »

  1.   

    sqlldr使用详解
      

  2.   

    你可以是这样先建立一张临时表,使用sqlldr表table1的字段为id,value1,value2.
    然后你使用
    insert into TEST select id,value1||','||value2 from table1.就可以了
      

  3.   

    如果只是想将数据入库,不用关心SQLLDR,修正一下EXCEL(合并第2、3列),再直接通过PL/SQL,复制、粘贴进去就可以了。
      

  4.   

    1、将excel存为csv格式
    2、表中需要有一个value2列,就可以直接装载
    load data
    infile 'c:\test.csv'
    append
    into table test
    fields terminated by ','
    trailing nullcols
    (
      id,
      value1 ":value1||','||:vlaue2",
      value2
    )
      

  5.   

    好像里面有个position参数,但试了几次没成功
      

  6.   

    这样一来,value2岂不是冗余字段了?并且是要先有value2中的值,才能有value1中的值?
      

  7.   

    况且,如果要接着在表中的value2、value3字段中也存这种格式的数据,那岂不还需要几个冗余字段?
      

  8.   

    这样一来,value2岂不是冗余字段了?并且是要先有value2中的值,才能有value1中的值?况且,如果要接着在表中的value2、value3字段中也存这种格式的数据,那岂不还需要几个冗余字段?
      

  9.   

    --不可以直接先导入 在利用update 来吗?--控制文件内容 先把excel 改成csv的格式
    load data
    infile 'c:\test.csv'
    append into table test
    fields terminated by ","
    TRAILING NULLCOLS
    (id,value1,value2)
    --然后update test set VALUE1=VALUE1||','||VALUE1,VALUE2=null