Oracle pl / sql ORA-00904 неверный идентификатор - PullRequest
0 голосов
/ 21 мая 2018

Я новичок в 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»: неверный идентификатор

В чем проблема?

1 Ответ

0 голосов
/ 21 мая 2018

Вам необходимо добавить столбец 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...