控制文件:
LOAD DATA
APPEND
INTO TABLE TABLENAME
WHEN SUM != '0.00' AND BALAN!='0.00'
FIELDS TERMINATED BY "|"
(
SUM "to_number(:SUM)",
BALAN "to_number(:BALAN)",
)
要求SUM 和BALAN字段同时都不为'0.00'导入,否则不导;现在问题是sum或balan字段中只要有一个字段等于'0.00'就不导入此条记录;请问各位高手我该如何解决啊?

解决方案 »

  1.   

    100.0|0.00|
    0.00|13.5|
    0.00|0.00|
    例如源文件如上,我执行sqlldr后以上3条记录都未导入表,可我只希望第3条记录(0.00|0.00)不导入表;
      

  2.   

    SUM != '0.00' AND BALAN!='0.00'改成(SUM != '0.00' AND BALAN!='0.00')试试
      

  3.   

    SQL*Loader-350:  语法错误位于第4行。
    预期值是")",而实际值是关键字 and。
    WHEN (LIST_SUM!='0.00' AND LIST_BALAN!='0.00')
      

  4.   

    WHEN SUM != '0.00' AND BALAN!='0.00'??根据你的需求你应该是两者之间OR 而不是AND  但是SQL*LOADER没有OR所以你可以分开导入
      

  5.   

    LOAD DATA
    APPEND
    INTO TABLE TABLENAME
    WHEN SUM <> '0.00' 
    FIELDS TERMINATED BY "|"
    (
    SUM "to_number(:SUM)",
    BALAN "to_number(:BALAN)",
    )
    INTO TABLE TABLENAME
    WHEN SUM  = '0.00' and BALAN <> '0.00'
    FIELDS TERMINATED BY "|"
    (
    SUM "to_number(:SUM)",
    BALAN "to_number(:BALAN)",
    )这样可以解决,但是要导2次!
    帖子自己结了~~~~