【问题标题】:Oracle pl/sql ORA-00904 invalid identifierOracle pl/sql ORA-00904 无效标识符
【发布时间】:2018-05-21 19:16:39
【问题描述】:

我是 pl/sql 的新手,我无法弄清楚以下脚本中的问题。首先我执行了这个脚本:

CREATE TABLE Cladiri (
 id_cladire varchar2(5) constraint pk_cladire primary key,
 denumire_cladire varchar2(50),
 numar_cladire number(2),
 adresa varchar2(50),
 cod_postal varchar2(15)
);

其中成功创建了一个表。接下来,我想创建一个外键引用id_cladire的新表:

CREATE TABLE Companii (
    id_companie varchar2(5) constraint pk_companie primary key,
    denumire_companie varchar2(50),
    numar_cladire number(4),
    numarul_de_telefon varchar2(20),
    numarul_de_oficii number(4),
    constraint fk_companie_cladire foreign key (id_cladire) references 
Cladiri(id_cladire)
);

执行最后一个脚本时出现以下错误:

ORA-00904:“ID_CLADIRE”:标识符无效

有什么问题?

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    您需要将id_cladire 列添加到Companii 表中:

    CREATE TABLE Companii (
        id_companie varchar2(5) constraint pk_companie primary key,
        denumire_companie varchar2(50),
        numar_cladire number(4),
        numarul_de_telefon varchar2(20),
        numarul_de_oficii number(4),
        id_cladire VARCHAR2(5), -- here
        constraint fk_companie_cladire foreign key (id_cladire) references 
    Cladiri(id_cladire)
    );
        -- column + type + constraint
    

    或:

    CREATE TABLE Companii (
        id_companie varchar2(5) constraint pk_companie primary key,
        denumire_companie varchar2(50),
        numar_cladire number(4),
        numarul_de_telefon varchar2(20),
        numarul_de_oficii number(4),
        id_cladire  CONSTRAINT fk_companie_cladire references Cladiri(id_cladire)
        -- column + constraint (type is inferred)
    );
    

    DBFiddle Demo

    【讨论】:

    • 极其愚蠢的错误。非常感谢你!我会在 10 分钟内接受答案
    猜你喜欢
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多