René Nyffenegger's collection of things on the web | |
René Nyffenegger on Oracle - Most wanted - Feedback
- Follow @renenyffenegger
|
create type [Oracle SQL] | ||
The create type creates a specification for either
Object typescreate or replace type base-type-name is object (....); create or replace type derived-type-name under base-type-name(....); create or replace type .... not final create or replace type .... final; create or replace type .... not instantiable; create or replace type .... instantiable; Varray typecreate or replace some_type_name as varray (n) of some_other_type_name;
See also declaration of varray types.
Nested typecreate or replace some_type_name as table of some_other_type_name;
See also declaration of nested table types.
Examplesset 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; Requirements
In order to create user defined types the objects option is required.
|