Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Object-relational database.

Re: Object-relational database.

From: Rene Nyffenegger <rene.nyffenegger_at_gmx.ch>
Date: 24 Apr 2003 18:16:52 GMT
Message-ID: <b899mk$7pdd1$1@ID-82536.news.dfncis.de>

> 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 Apr 24 2003 - 13:16:52 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US