IGNORE_ROW_ON_DUPKEY_INDEX 仍然导致 ORA-00001 错误

问题描述 投票:0回答:1

我有下表:

CREATE TABLE "43CY".AMSTBL_B2BTST
(
    TSMPF    VARCHAR(5), 
    TSCALLRN VARCHAR(3), 
    TSCALLR2 VARCHAR(15), 

    CONSTRAINT AMSCNS_B2BTST 
        PRIMARY KEY (TSMPF, TSCALLRN, TSCALLR2)
);

看起来创建表成功了:

Table Name

...以及约束:

Constraint Name

和索引:

Index Name

但是,如果我运行以下脚本,它会失败,并抛出 ORA-00001 错误(唯一约束):

enter image description here

sql oracle-database plsql
1个回答
1
投票

从提示中删除架构名称,代码将运行而不会引发异常:

BEGIN
  INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (AMSTBL_B2BTST, AMSCNS_B2BTST) */
  INTO "43CY".AMSTBL_B2BTST
    (TSMPF, TSCALLRN, TSCALLR2)
  VALUES
    ('431', 'RPR', 'A');
END;
/

来自手册的语法图显示模式名称不应在这些提示中使用:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.