我正在使用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 回答
你有几个问题 . 引起问题的直接问题是you have the clauses in the wrong order,但你也有
MISSING FIELDS
而不是MISSING FIELD
:然后你的field list contents对于声明的那一部分有无效的data types;在这种情况下,您可以完全省略它,因为它们与表列定义匹配 .
所以你可以简化它:
针对Oracle Bug调用的一些操作需要
Select From External Table Returns Errors ORA-29913 ORA-29400 KUP-554 KUP-1005 (Doc ID 302672.1)
创建外部表时,应按以下顺序指定访问参数:
评论
记录格式信息
字段定义
按正确顺序指定注释,记录格式信息和字段定义 . 即使在记录格式信息中,“由......分隔的记录”子句也应该出现在任何其他子句之前 .
有关更多信息,请参阅the access_parameters clause .