create or replace type base-type-name is object (....);create or replace type derived-type-name under base-type-name(....);create or replace type .... not finalcreate or replace type .... final;create or replace type .... not instantiable;create or replace type .... instantiable;
create or replace some_type_name as varray (n) of some_other_type_name;
create or replace some_type_name as table of some_other_type_name;
set feedback off;create or replace type A as object ( x_ number, y_ varchar2(10), member procedure to_upper);/create type body A is member procedure to_upper is begin y_ := upper(y_); end;end;/create or replace type AList as table of A;/create or replace type B as object ( l_ char(2), a_ AList, member procedure to_upper);/create type body B is member procedure to_upper is i number; begin i := a_.first; while i is not null loop a_(i).to_upper; i:=a_.next(i); end loop; end;end;/declare b1 B; b2 B; b3 B;begin b1 := B('fr',AList(A('1','un' ),A('2','deux'))); b2 := B('de',AList(A('1','eins'),A('2','zwei'))); b3 := B('en',AList(A('1','one' ),A('2','two' ))); b2.to_upper(); dbms_output.put_line(b2.a_(2).y_);end;/drop type B;drop type AList;drop type A;
联系客服