我想用oracle外部表功能将平面文件加载到数据库中,但在我创建的外部表上执行SELECT语句时遇到错误。 下面是我下面的具体步骤 -外部表错误 - ORA-29913:执行ODCIEXTTABLEOPEN标注出错
/user2/cbusdev01/smp43/domains/columbus/tools>mkdir data_1
/user2/cbusdev01/smp43/domains/columbus/tools>chmod 777 data_1
创建_1文件夹add_len.csv Barbados_1000230,2461000230,2461000230,SSLN 00 0 00 138 Barbados_1000229,2461000229,2461000229,SSLN 00中的文件0 00 139 Barbados_1000228,2461000228,2461000228,SSLN 00 0 03 14
login to sysdba - grant create any directory to cbusdev01cm; 授予读取,在DIRECTORY data_1上写入到cbusdev01cm;
现在创建一个外部表 -
CREATE TABLE add_len_ext (
country_code VARCHAR2(20),
sip NUMBER,
tn NUMBER,
len VARCHAR2(30)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY data_1
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
BADFILE data_1:'bad.bad'
LOGFILE data_1:'log.log'
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
(
country_code CHAR(50),
sip CHAR(50),
tn CHAR(50),
len CHAR(50)
)
)
LOCATION (data_1:'add_len.csv')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;
Table ADD_LEN_EXT created.
然后我火SELECT语句
select * from ADD_LEN_EXT;
,这让我 -
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
error opening file /user2/cbusdev01/smp43/domains/columbus/tools/log.log
29913. 00000 - "error in executing %s callout"
*Cause: The execution of the specified callout caused an error.
*Action: Examine the error messages take appropriate action.
我没有得到这个错误! 我已授予所有关注的权限,但错误仍在。
我使用 -
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
"CORE 11.2.0.3.0 Production"
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
是william是一个原因,另一个是我需要在DB服务器上创建此文件不在这里,所以当我这样做时,问题得到解决! – mradul