从一个CSV里面通过SQL Loader导数据到表中,CSV中都是可变长数据,通过','分隔
例如:
item_id,item_name,produt_id,product_name
而数据表中只有以上4个字段中的三个,如:item_id   product_id  product_name
这种SQL LOADER要如何写!

解决方案 »

  1.   

    LOAD DATA
    INFILE WHATEVERFILENAME
    INTO TABLE YOURTABLE
    APPEND
    FIELDS TERMINATED BY ',' 
    (item_id,item_name,produt_id,product_name)
      

  2.   

    有个例子,参考下。
      用sqlldr
    创建控制文件in.ctlload data
    append
    into table t_ljdj
    fields terminated by '|'
    (
    cp_bh char(30),
    mc char(50),
    cp_ljmc char(100),
    zyh char(20),
    dj
    )文本文件内容格式10300108200|XPB65-113S|后盖  PP  0.34kg|0030200525      |3.42000008
    10300108200|XPB65-113S|洗涤桶盖  浅兰透明ABS|0030200877      |15.52000046执行sqlldr username/pw control=c:\in.ctl data=c:\in.txt
      

  3.   

    可以忽略不要的字段,或者先load,然后再去掉
      

  4.   

    多谢各位的回答我再详细介绍一下我面临的问题:
    一个data.csv文件中存在着我需要的数据,有如下四个字段(都是可变长的):
    item_id,item_name,produt_id,product_name
    但是我的表中只有如下三个字段,如下:
    item_id,produt_id,product_name
    在表的结构无法改变的情况下如何通过SLQ LOADER从.csv文件中读出的每条数据只有我需要的那3个字段。
      

  5.   

    sqlldr的具体用法,请再讲的详细点,好不好?