首页 > 解决方案 > 外部表语法错误 KUP-01005 Oracle

问题描述

每次选择我创建的外部表时,我都会收到如下错误。

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, 预处理器, readsize, 字符串, 跳过, 领土, 变量, 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')
);

我已经检查了数据目录和数据文件的所有权限

标签: sqloracle

解决方案


看来您的CHARACTERSET ( x-IBM949 ) 包含-字符无效

您可以尝试没有该标志的其他替代方案,

AL32UTF8 , US7ASCII , WE8MSWIN1252 .. 等。


推荐阅读