Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Object-relational database.
How to demo inheritance in Oracle? Thanks.
Rene Nyffenegger wrote:
> > Hi,
> >
> > It seems that Oracle is an object-relational database. Probably this
> > is a stupid question, but... where is the object-oriented part?. The
> > way I have used Oracle so far implies to deal with tables, SQL and
> > PL/SQL to create stored procedures (the same way I would use other
> > only-relational databases as MySQL). Can anybody give me a (simple)
> > example of why Oracle is object oriented?.
>
> The following example creates a type (base_type) from which
> a type is derived (deriv_type). In a table (t_) that
> can store base_type's, an 'instance' of a base_type and
> of a deriv_type is stored. Runs on 9i.
>
>
> create or replace type base_type as object (
> a number,
> constructor function base_type return self as result,
> member function f return number,
> member procedure p(n number)
> ) instantiable not final;
> /
>
> create or replace type body base_type as
> constructor function base_type return self as result is
> begin
> a:=0;
> return;
> end base_type;
>
> member function f return number is
> begin
> return a;
> end f;
>
> member procedure p (n number) as
> begin
> a:=n;
> end p;
>
> end;
> /
>
> create or replace type deriv_type under base_type (
> m number,
> overriding member function f return number
> );
> /
>
> create or replace type body deriv_type as
> overriding member function f return number is
> begin
> return m*a;
> end;
> end;
> /
>
> create table t_(b base_type);
>
> declare
> b base_type := base_type();
> d deriv_type:= deriv_type(8,9);
> begin
> b.p(5);
> insert into t_ values(b);
> insert into t_ values(d);
> end;
> /
>
> hth
> Rene Nyffenegger
>
> --
> Projektleitung und Entwicklung in Oracle/C++/C# Projekten
> http://www.adp-gmbh.ch/cv.html
Received on Thu May 01 2003 - 08:22:55 CDT