Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Object-relational database.
> 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.htmlReceived on Thu Apr 24 2003 - 13:16:52 CDT
![]() |
![]() |