各位高手 我用sqlldr只想导入
字段 a='1' 或者 a='2' 的数据
如下红字地方我应该怎么写 谢谢OPTIONS(ERRORS=2147483647,Direct=true,rows=120000) 
unrecoverable 
Load DATA 
infile "文本.txt"
Append INTO TABLE table1when a= '1' a='2'FIELDS TERMINATED BY ','
(a char,b char)

解决方案 »

  1.   

    load data
    infile *
    into table t
    fields terminated by ','
    (empno "case when :empno>7600 then :empno end",
    ename)
    begindata
    7369,SMITH
    7499,ALLEN
    7521,WARD
    7566,JONES
    7654,MARTIN
    7698,BLAKE
    7782,CLARK
    7788,SCOTT
    7839,KING
    7844,TURNER
    7876,ADAMS
    7900,JAMES
    7902,FORD
    7934,MILLER
    导入后的结果:
    SQL> select * from t;     EMPNO ENAME
    ---------- ----------
               SMITH
               ALLEN
               WARD
               JONES
          7654 MARTIN
          7698 BLAKE
          7782 CLARK
          7788 SCOTT
          7839 KING
          7844 TURNER
          7876 ADAMS
          7900 JAMES
          7902 FORD
          7934 MILLER已选择14行。
    然后你可以把为空的手动删除
      

  2.   

    谢谢 楼上的朋友 你的方法对我不合适 
    我不想再执行一个删除命令OPTIONS(ERRORS=2147483647,Direct=true,rows=120000) 
    unrecoverable 
    Load DATA 
    infile "文本.txt" 
    Append INTO TABLE table1 (when a= '北京' a='上海' )FIELDS TERMINATED BY ',' 
    (a char,b char)
      

  3.   

    这样的话sqlldr好像搞不定吧,看看外部表吧
      

  4.   

    也遇到这个问题!when好像只能去固定位置的字符 when(x:y) = ''来判断,但是对于不定长的字段,就没有办法处理!
    不知道有没有其他的方法,希望高人赐教!