首先创建目录DIR_EXTERNAL_TABLE 目录创建成功,然后授权。外部表创建
CREATE TABLE tbl_external_table_test(    
       name VARCHAR2(50), 
       studentno VARCHAR2(50), 
       hometown VARCHAR2(50) 
)ORGANIZATION EXTERNAL

TYPE oracle_loader
DEFAULT DIRECTORY DIR_EXTERNAL_TABLE 
             ACCESS PARAMETERS 
             ( 
RECORDS DELIMITED BY NEWLINE 
FIELDS TERMINATED BY ','
             )LOCATION('external_test.txt')
)REJECT LIMIT UNLIMITED 
表创建成功select * from tbl_external_table_test 报如下错误
ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错
ORA-29400: 数据插件错误KUP-00554: error encountered while parsing access parameters
KUP-01005: syntax error: found "identifier": expecting one of: "column, debug, exit, fields, records"
KUP-01008: the bad identifier was: record
KUP-01007: at line 1 column 1
ORA-06512: 在 "SYS.ORACLE_LOADER", line 19
ORA-06512: 在 line 1

解决方案 »

  1.   

    右添加了两个选项好了
    badfile DIR_EXTERNAL_TABLE:'test.bad'
    logfile DIR_EXTERNAL_TABLE:'test.log'
      

  2.   


    CREATE TABLE tbl_external_table_test(     
           name VARCHAR2(50),  
           studentno VARCHAR2(50),  
           hometown VARCHAR2(50)  
    )ORGANIZATION EXTERNAL
    (  
    TYPE oracle_loader
    DEFAULT DIRECTORY DIR_EXTERNAL_TABLE  
                 ACCESS PARAMETERS  
                 (  
    RECORDS DELIMITED BY NEWLINE  
    FIELDS TERMINATED BY ','
    (name char,
    studentno char,
    hometown char)
                 )LOCATION('external_test.txt')
    )REJECT LIMIT UNLIMITED 
      

  3.   

    有可能是你ACCESS PARAMETERS 有问题。建表不报错并不能说明你建的一定是对的,比如存储过程你建立时也不会报错,但是可能编译就未通过