问题描述
我刚刚从11g升级到甲骨文18c XE。我有一个在11g上可以正常工作的外部表,但是在18c上不断出现以下错误。
ORA-29913: 执行ODCIEXTTABLEOPEN标注时出错
ORA-29400: 数据卡带错误
KUP-11604: 没有为日志文件指定目录对象
目录确实存在,我有正确的授权。
所有者目录 _ 名称目录 _ 路径来源 _ con_id
系统MYDIR C:\ 用户 \ sneuf \ OneDrive \ PLSQL \ OracleDirectory 1
授予人授予表 _ 架构表 _ 名称特权可授予层次结构继承的公共类型
系统C ##_sneuf系统MYDIR执行是否否目录否
系统C ##_sneuf系统MYDIR读取是否否目录否
系统C #
我很确定我在某个地方错过了一笔赠款,但我不知道是什么。
这是我的表:
谢谢,史蒂夫
ORA-29913: 执行ODCIEXTTABLEOPEN标注时出错
ORA-29400: 数据卡带错误
KUP-11604: 没有为日志文件指定目录对象
目录确实存在,我有正确的授权。
SELECT * FROM all_directories WHERE directory_name = 'MYDIR';
所有者目录 _ 名称目录 _ 路径来源 _ con_id
系统MYDIR C:\ 用户 \ sneuf \ OneDrive \ PLSQL \ OracleDirectory 1
SELECT * FROM all_tab_privs WHERE table_name = 'MYDIR' AND grantee = 'C##_SNEUF';
授予人授予表 _ 架构表 _ 名称特权可授予层次结构继承的公共类型
系统C ##_sneuf系统MYDIR执行是否否目录否
系统C ##_sneuf系统MYDIR读取是否否目录否
系统C #
我很确定我在某个地方错过了一笔赠款,但我不知道是什么。
这是我的表:
CREATE TABLE C##_SNEUF.CHECKING_TBL_EXT2
(
DB_KEY NUMBER,
CHECK_NUM VARCHAR2(10),
TRANS_DATE TIMESTAMP (6),
DESCRIPTION VARCHAR2(100),
DEPOSIT_WITHDRAWAL VARCHAR2(1),
AMOUNT VARCHAR2(12),
MEMO VARCHAR2(200)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY MYDIR
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
BADFILE MYDIR: 'checking.bad'
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
LDRTRIM
MISSING FIELD VALUES ARE NULL
(
DB_key CHAR,
check_num CHAR(10),
trans_date CHAR(21) DATE_FORMAT DATE MASK 'MM/DD/YYYY HH24:MI:SS',
description CHAR(100),
deposit_withdrawal CHAR(1),
amount CHAR(12),
memo CHAR(200)
)
)
LOCATION
( MYDIR: 'checking.csv'
)
)
REJECT LIMIT UNLIMITED ;谢谢,史蒂夫
专家解答
我们需要根据数据的负载编写日志文件。你没有指定一个。
你可以做:
这意味着一切都来自/转到MYDIR,或者你需要添加:
你可以做:
ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY MYDIR ACCESS PARAMETERS (
这意味着一切都来自/转到MYDIR,或者你需要添加:
BADFILE MYDIR: 'checking.bad' LOGFILE MYDIR: 'checking.log'
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




