我在尝试select * from ext_poc
ORA-29913:执行ODCIEXTTABLEOPEN标注时出错 ORA-29400:数据盒式磁带错误 KUP-00554:解析访问参数时遇到错误 KUP-01005:语法错误:找到“标识符”:期望以下之一:“binary_double,binary_float,逗号,字符,日期,defaultif,decimal,double,float,integer,(,no,nullif,oracle_date,oracle_number,position,raw ,recnum,),unsigned,varrawc,varchar,varraw,varcharc,zoned“ KUP-01008:错误的标识符是:varchar2 KUP-01007:第4栏第10栏 29913. 00000 - “执行%s标注时出错” *原因:执行指定的标注导致错误。 *操作:检查错误消息是否采取适当的措施。
以下是表格的ddl
:
CREATE TABLE "JDASTG"."EXT_POC"
( "ID" varchar2(100),
"NAME" varchar2(100),
"DOB" varchar2(100)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "SCPO_EXT_DATA"
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
(id varchar2(100),
name varchar2(100),
dob varchar2(100)
)
)
LOCATION
( 'xyz_aldrin.csv'
)
);
PS:
但是,如果varchar2(100)
更改为char(100)
:
MISSING FIELD VALUES ARE NULL
(id char(100),
name char(100),
dob char(100)
)
答案 0 :(得分:4)
区分表中指定的oracle内部数据类型和外部表(sqlldr的控制文件)的访问参数中指定的外部数据类型非常重要。请记住,再次阅读manual。它应该变得清晰。 SQL加载器中允许使用CHAR,而VARCHAR2不是