首页 文章

更改Oracle表:无效的标识符

提问于
浏览
0

使用Oracle Application Express for Oracle 11g

将外键约束添加到预先存在的表 .

Table: COMMUNICATION

COMMUNICATION-ID      NUMBER        
COMMUNICATIONTYPE_ID  VARCHAR2(6)   
CONTACT_ID            NUMBER         
COMMUNICATIONVALUE    VARCHAR2(40)

Table: COMMUNICATIONTYPE

COMMUNICATIONTYPE-ID VARCHAR2(6)


在SQL命令界面中使用以下SQL

ALTER TABLE COMMUNICATION
ADD CONSTRAINT FK_COMMUNICATIONTYPE
FOREIGN KEY (COMMUNICATIONTYPE_ID)
REFERENCES COMMUNICATIONTYPE(COMMUNICATIONTYPE-ID)

返回以下内容:

ORA-00904 ::无效的标识符

没想到这可能更简单 . 到底怎么会出错?

2 回答

  • 1

    你确定该字段被称为 COMMUNICATIONTYPE-ID 吗?

    - 通常不在标识符中使用,因为它具有特殊含义 .

    如果我是你,我会重命名列 COMMUNICATIONTYPE_ID

    要在标识符中使用它,您需要始终用双引号括起该标识符 .

    ALTER TABLE COMMUNICATION
    ADD CONSTRAINT FK_COMMUNICATIONTYPE
    FOREIGN KEY (COMMUNICATIONTYPE_ID)
    REFERENCES COMMUNICATIONTYPE("COMMUNICATIONTYPE-ID")
    
  • 1

    COMMUNICATIONTYPE(COMMUNICATIONTYPE-ID)

    Dash在Oracle名称中无效 . 我想你打算输入一个下划线 . 它很容易完成 .

    作为COMMUNICATION表的DDL,同样的错误也可能是失败的.1277238_脚本也可能失败了 . 因此错误可能会被抛到多个地方 .

相关问题