有TXT文件:
CWEB|00|200707140915
CWEB|01|1651620|XXXXXX|MTC_CHS|123456|123456|123456|123456|TJN987-01-01|Y|09072007|BAX Global Pte Ltd-Air-2nd Day Air|N|30072007|120 NET||EX WORKS (...named place)|987654321||
CWEB|02|4887809C01|2450|1.1|1.82000|13-JUL-2007|||987654321
CWEB|02|SNN5705B|450|2.1|3.39000|13-JUL-2007|||987654321
CWEB|02|4871302T01|21000|3.1|0|13-JUL-2007|||987654321
CWEB|99|4|200707140915|3如果以CWEB|00|开头导入到 File Head表
如果以CWEB|01|开头导入到 Head表
如果以CWEB|02|开头导入到 Line表
如果以CWEB|99|开头导入到 File tailer表
sql*loader的ctrl文件怎么写?

解决方案 »

  1.   

    给个例子
    INTO TABLE dept 
       WHEN recid = 1 
       (recid  FILLER POSITION(1:1)  INTEGER EXTERNAL,
        deptno POSITION(3:4)  INTEGER EXTERNAL, 
        dname  POSITION(8:21) CHAR) 
    INTO TABLE emp 
       WHEN recid <> 1 
       (recid  FILLER POSITION(1:1)   INTEGER EXTERNAL,
        empno  POSITION(3:6)   INTEGER EXTERNAL, 
        ename  POSITION(8:17)  CHAR, 
        deptno POSITION(19:20) INTEGER EXTERNAL) 数据是
    1 50   Manufacturing       -- DEPT record 
    2 1119 Smith      50       -- EMP record 
    2 1120 Snyder     50 
    1 60   Shipping 
    2 1121 Stevens    60 
      

  2.   

    怎么设置:FIELDS TERMINATED BY '|'
      

  3.   

    插入到多表,只能以position的方式,可是你的字段宽度是不等的,是有分隔符的
    因此不能插入到多表 
    不过办法还是有的
    可以自己先写一个小程序,打印不同的数据到不同的文件,然后分别导入 SQLLDR不是万能的,很多事都不适合sqlldr做的