外部表语法错误 KUP-01005 Oracle
Posted
技术标签:
【中文标题】外部表语法错误 KUP-01005 Oracle【英文标题】:External table syntax error KUP-01005 Oracle 【发布时间】:2018-08-21 16:25:09 【问题描述】:每次选择我创建的外部表时,我都会收到如下错误。
ORA-29913:bład podczas wykonywania wywołania(标注)ODCIEXTTABLEOPEN
ORA-29400:bład kartrydza danych
KUP-00554:解析访问参数时遇到错误
KUP-01005:语法错误:找到“减号”:期待以下之一:“坏文件、字节序标记、字符集、列、数据、分隔、丢弃文件、dnfs_enable、dnfs_disable、disable_directory_link_check、字段、字段、固定、io_options、加载、日志文件、语言、nodiscardfile、nobadfile、nologfile、date_cache、dnfs_readbuffers、预处理器、读取大小、字符串、跳过、区域、变量、xmltag"
KUP-01007:第 4 行第 23 列 29913. 00000 - “执行 %s 标注时出错”
外部表创建成功。这是创建外部表的脚本:
CREATE TABLE TB_CNEI_01C
(
NEW_OMC_ID VARCHAR(2),
NEW_OMC_NM VARCHAR(8),
NEW_BSS_ID VARCHAR(6),
NEW_BSS_NM VARCHAR(20),
OMC_ID VARCHAR(2),
OMC_NM VARCHAR(8),
OLD_BSS_ID VARCHAR(6),
OLD_BSS_NM VARCHAR(20),
DEPTH_NO INTEGER,
NE_TP_NO INTEGER,
OP_YN INTEGER,
FAC_ALIAS_NM VARCHAR(20),
FAC_GRP_ALIAS_NM VARCHAR(20),
SPC_VAL VARCHAR(4),
INMS_FAC_LCLS_CD VARCHAR(2),
INMS_FAC_MCLS_CD VARCHAR(3),
INMS_FAC_SCLS_CD VARCHAR(3),
INMS_FAC_SCLS_DTL_CD VARCHAR(2),
LDEPT_ID VARCHAR(3),
FAC_ID VARCHAR(15),
MME_IP_ADDR VARCHAR(20),
MDEPT_ID VARCHAR(4),
HW_TP_NM VARCHAR(20),
MME_POOL_NM VARCHAR(20),
BORD_CNT INTEGER,
FAC_DTL_CLSFN_NM VARCHAR(50),
INSTL_FLOOR_NM VARCHAR(20),
INSTL_LOC_NM VARCHAR(30)
)
ORGANIZATION EXTERNAL
(
TYPE oracle_loader
DEFAULT DIRECTORY EXTERNAL_DATA
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
badfile EXTERNAL_DATA:'testTable.bad'
logfile EXTERNAL_DATA:'testTable.log'
CHARACTERSET x-IBM949
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
(
NEW_OMC_ID VARCHAR(2),
NEW_OMC_NM VARCHAR(8),
NEW_BSS_ID VARCHAR(6),
NEW_BSS_NM VARCHAR(20),
OMC_ID VARCHAR(2),
OMC_NM VARCHAR(8),
OLD_BSS_ID VARCHAR(6),
OLD_BSS_NM VARCHAR(20),
DEPTH_NO INTEGER,
NE_TP_NO INTEGER,
OP_YN INTEGER,
FAC_ALIAS_NM VARCHAR(20),
FAC_GRP_ALIAS_NM VARCHAR(20),
SPC_VAL VARCHAR(4),
INMS_FAC_LCLS_CD VARCHAR(2),
INMS_FAC_MCLS_CD VARCHAR(3),
INMS_FAC_SCLS_CD VARCHAR(3),
INMS_FAC_SCLS_DTL_CD VARCHAR(2),
LDEPT_ID VARCHAR(3),
FAC_ID VARCHAR(15),
MME_IP_ADDR VARCHAR(20),
MDEPT_ID VARCHAR(4),
HW_TP_NM VARCHAR(20),
MME_POOL_NM VARCHAR(20),
BORD_CNT INTEGER,
FAC_DTL_CLSFN_NM VARCHAR(50),
INSTL_FLOOR_NM VARCHAR(20),
INSTL_LOC_NM VARCHAR(30)
)
)
LOCATION ('TB_CNEI_01C.csv')
);
我已经检查了数据目录和数据文件的所有权限
【问题讨论】:
错误信息显示在访问参数的第 4 行的减号处解析失败。我现在无法对此进行测试,所以有点猜测,但您可以尝试将该字符集引用为"x-IBM949"
或 'x-IBM949'
。
【参考方案1】:
您的 CHARACTERSET(x-IBM949) 包含 -
字符似乎无效
你可以试试没有那个标志的其他替代品,
比如 AL32UTF8、US7ASCII、WE8MSWIN1252 ..等
【讨论】:
我必须将数据从 CP949(韩国标志)转换为 UTF-8。我该怎么做?【参考方案2】:我的“CREATE TABLE ..”脚本中有几行注释。我删除了那些注释行,错误消失了。 我收到了上述建议:http://www.orafaq.com/forum/t/182288/
【讨论】:
以上是关于外部表语法错误 KUP-01005 Oracle的主要内容,如果未能解决你的问题,请参考以下文章