外部表文件加载省略列

时间:2015-12-08 18:09:10

标签: sql oracle plsql

我需要在oracle中将数据从文件上传到外部表,但不需要文件中定义的所有列, 到目前为止我已经尝试了这个

CREATE TABLE test_tbl(
   col1 number,
   col2 varchar2(10),
   col3 varchar2(10),
   col4 varchar2(10),
   col5 varchar2(10)
)
 ORGANIZATION EXTERNAL(
    TYPE ORACLE_LOADER
     DEFAULT DIRECTORY MY_DIR
     ACCESS PARAMETERS(
       RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        (
           col1 ,
           filler ,
           col3 ,
           col4 ,
           filler
         )
    )
 LOCATION(
     'myfile.txt'
       )
)

通过查询表生成此错误

  

ORA-29913:错误al ejejear la llamada de ODCIEXTTABLEOPEN
ORA-29400:   错误de cartucho de datos
KUP-04043:找不到表列   外部来源:col2

文件结构:0111,列,测试,名称,地址

1 个答案:

答案 0 :(得分:0)

为什么不采取简单的方法?如果您接受里卡多的更正,您的外部表将起作用。然后添加包含所需列的视图:

CREATE TABLE test_tbl( col1  NUMBER
                     , col2  VARCHAR2( 10 )
                     , col3  VARCHAR2( 10 )
                     , col4  VARCHAR2( 10 )
                     , col5  VARCHAR2( 10 )
                      )
ORGANIZATION EXTERNAL
   (TYPE oracle_loader
         DEFAULT DIRECTORY MY_DIR
            ACCESS PARAMETERS
               (
       RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        (
           col1 ,
           col2 ,
           col3 ,
           col4 ,
           col5
         )
    )
         LOCATION( 'myfile.txt' ));

CREATE OR REPLACE VIEW what_i_need
AS
   SELECT col1, col3, col4 FROM test_tbl;