joec
joec

Reputation: 3543

Constraint on subtype attribute (Oracle)

If i have a type x_typ and subtype y_typ, is it possible to create a an object table of x_typ but put a constraint on one of the y_typ attributes i.e.

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

Thanks

Upvotes: 4

Views: 533

Answers (1)

Gary Myers
Gary Myers

Reputation: 35401

The closest I can come is...

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

Upvotes: 1

Related Questions