Ограничение на атрибут подтипа (Oracle) - PullRequest
4 голосов
/ 25 февраля 2010

Если у меня есть тип x_typ и подтип y_typ, возможно ли создать таблицу объектов из x_typ, но наложить ограничение на один из атрибутов y_typ, т. Е.

create table x_table of x_typ (
   constraint constr_y check (y_typ.attribute1 < 5);
);

Спасибо

1 Ответ

1 голос
/ 25 февраля 2010

Самое близкое, что я могу прийти, это ...

CREATE OR REPLACE TYPE x_typ AS OBJECT (record_type varchar2(1)) NOT FINAL;
/

CREATE OR REPLACE TYPE y_typ UNDER x_typ (attribute1 number) ;
/

create table x_table (x_col x_typ);


alter table x_table add constraint x_cons 
  check ( 1 = case when x_col is of (y_typ) then 
      treat (x_col as y_typ).attribute1 else 1 end);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...