Как ссылаться на объект с внешним ключом в Oracle PL / SQL? - PullRequest
0 голосов
/ 31 октября 2018

Я создал эти два объекта:

CREATE OR REPLACE TYPE tp_endereco AS OBJECT (
    ID INTEGER, 
    DESCRICAO VARCHAR2(100), 
    CEP VARCHAR2(30) );

CREATE OR REPLACE TYPE tp_hospedagem AS OBJECT (
    ID INTEGER, 
    NOME VARCHAR2(200), 
    ENDERECO_FK_ID tp_endereco, 
    VALOR NUMBER(9,2), 
    TIPO_ACOMODACAO VARCHAR2(20) );

И тогда я создал таблицу объектов:

CREATE TABLE tb_endereco OF tp_endereco (PRIMARY KEY (id));

Но я не знаю, как создать таблицу типа TP_HOSPEDAGEM. Как я могу реализовать ограничение FK ENDERECO_FK_ID?

Если я попробую это, у меня будет ошибка:

CREATE TABLE tb_hospedagem OF tp_hospedagem (PRIMARY KEY (id) FOREIGN KEY (endereco_fk_id));

Это происходит потому, что это разные типы, но я все равно проиграл.

Кто-нибудь может мне помочь?

Спасибо, ребята!

1 Ответ

0 голосов
/ 31 октября 2018

Я не уверен, почему вы так поступаете, возможно, вы работаете с orcale формами, но попробуйте следующее (обратите внимание, что вам нужно изменить имя таблицы):

CREATE TABLE tp_endereco_obj OF tp_endereco (ID PRIMARY KEY)
  OBJECT IDENTIFIER IS PRIMARY KEY;
/
CREATE TABLE table_hospedagem OF tp_hospedagem (PRIMARY KEY (id) ,
FOREIGN KEY (id) REFERENCES tp_endereco_obj (id));
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...