对子类型属性的约束(Oracle)

时间:2010-02-25 00:11:21

标签: oracle constraints

如果我有一个类型x_typ和子类型y_typ,是否可以创建一个x_typ的对象表,但是对其中一个y_typ属性设置了约束,即

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

由于

1 个答案:

答案 0 :(得分:1)

我最接近的是......

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);