从1 file.dat到多个表的SQL Loader不起作用

时间:2015-10-02 05:32:49

标签: oracle sql-loader

我想从一个文件(数据)加载多个表。它不起作用。 我使用when条件。但只有第一个会加载。

更多详情:

用于表的脚本SQL:

CREATE TABLE TECHNOLOGY
(
     code, dept, salary, hiredate 
);

CREATE TABLE OTHER
(
     code, dept, salary, hiredate 
);

文件数据ulcase5.dat:

100;Thomas;Sales;5000;1000
200;Jason;Technology;5500;2000
300;Mayla;Technology;7000;2000
400;Nisha;Marketing;9500;1000
500; Randy;Technology;6000;3000
600;Bea;Sales;5000;1000

控制文件:

 LOAD DATA
    INFILE 'ulcase5.dat'
   -- BADFILE 'ulcase5.bad'
  -- DISCARDFILE 'ulcase5.dsc'

   ---ONLY THIS TABLE IS LOADER
      INTO TABLE TECHNOLOGY APPEND
      WHEN  salary = 'Technology'
    FIELDS TERMINATED BY ";"
    OPTIONALLY ENCLOSED BY '"'

    (
     code, dept, salary, hiredate 
    )
     -- NEVER LOADED.
 INTO TABLE OTHER 
    WHEN  salary = 'Sales'
    FIELDS TERMINATED BY ";"
    OPTIONALLY ENCLOSED BY '"'

    (
     code, dept, salary, hiredate 
    )

需要你的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

APPEND行之前移动INTO TABLE

APPEND
INTO TABLE TECHNOLOGY

另外,您的表格,数据文件和控制文件不同步,但我怀疑这是编辑问题?

编辑:根据您的评论修改。

尝试替换它:

WHEN  salary = 'Sales'

使用:

WHEN  salary != 'Technology'