首页 文章

ORA-29913:执行ODCIEXTTABLEOPEN标注时出错

提问于
浏览
0

我正在使用hr模式创建外部表但我收到错误

“ORA-29913:执行ODCIEXTTABLEOPEN标注错误ORA-29400:数据盒式磁带错误KUP-00554:解析访问参数时遇到错误KUP-01005:语法错误:找到”缺失“:期待以下之一:”column,(“KUP -01007:在第4行第3列29913. 00000 - “执行%s callout时出错”*原因:执行指定的callout导致错误 . *操作:检查错误消息采取适当的操作 .

----------------我的代码-------------------

create directory ex_tab as 'C:\My Works\External Table';


create table strecords (
st_id number(4),
st_name varchar(10),
schl_name varchar(5),
st_city varchar(15),
st_year number(4)
)
ORGANIZATION EXTERNAL
(TYPE oracle_loader
 DEFAULT DIRECTORY ex_tab
 ACCESS PARAMETERS
 (
  RECORDS DELIMITED BY newline
  FIELDS TERMINATED BY ',' 
  REJECT ROWS WITH ALL NULL FIELDS
  MISSING FIELDS VALUES ARE NULL
  (
    st_id number(4),
    st_name char(10),
    schl_name char(5),
    st_city char(15),
    st_year number(4)
  )
 )
 LOCATION ('strecords.txt')
);

desc strecords;

select * from strecords;

This is my code, please check it and review it.

2 回答

  • 2

    你有几个问题 . 引起问题的直接问题是you have the clauses in the wrong order,但你也有 MISSING FIELDS 而不是 MISSING FIELD

    ...
     ACCESS PARAMETERS
     (
      RECORDS DELIMITED BY newline
      FIELDS TERMINATED BY ',' 
      MISSING FIELD VALUES ARE NULL
      REJECT ROWS WITH ALL NULL FIELDS
      (
    ...
    

    然后你的field list contents对于声明的那一部分有无效的data types;在这种情况下,您可以完全省略它,因为它们与表列定义匹配 .

    如果未指定字段列表,则假定数据文件中的字段与外部表中的字段的顺序相同 .

    所以你可以简化它:

    create table strecords (
    st_id number(4),
    st_name varchar(10),
    schl_name varchar(5),
    st_city varchar(15),
    st_year number(4)
    )
    ORGANIZATION EXTERNAL
    (TYPE oracle_loader
     DEFAULT DIRECTORY ex_tab
     ACCESS PARAMETERS
     (
      RECORDS DELIMITED BY newline
      FIELDS TERMINATED BY ',' 
      MISSING FIELD VALUES ARE NULL
      REJECT ROWS WITH ALL NULL FIELDS
     )
     LOCATION ('strecords.txt')
    );
    
  • 1

    针对Oracle Bug调用的一些操作需要

    Select From External Table Returns Errors ORA-29913 ORA-29400 KUP-554 KUP-1005 (Doc ID 302672.1)

    创建外部表时,应按以下顺序指定访问参数:

    • 评论

    • 记录格式信息

    • 字段定义

    按正确顺序指定注释,记录格式信息和字段定义 . 即使在记录格式信息中,“由......分隔的记录”子句也应该出现在任何其他子句之前 .

    有关更多信息,请参阅the access_parameters clause .

相关问题