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

Home -> Community -> Usenet -> c.d.o.server -> Oracle 8 and Object Types

Oracle 8 and Object Types

From: Mark Loukko <mloukko_at_direct.ca>
Date: Sun, 25 Apr 1999 15:42:28 GMT
Message-ID: <37233775.1844031@news.direct.ca>


Hi all,

        I'm playing around with objects in Oracle 8i and I stuck. In the member function SumAllTimeForTask, how do I reference the current object's instance? ( look for ????). Any help would be great!!!

Cheers
Mark Loukko

create type o_Task as object (
 name varchar2(20),
 MEMBER FUNCTION SumAllTimeForTask RETURN number );
/

create type o_TaskTime as object (
 task_ref REF o_Task,
 time_spent number );
/

create table tasks of o_Task;
create table tasktime of o_TaskTime;

create type body o_task as

   member function SumAllTimeForTask return number as

      RetVal number := 0;
   begin

      select sum( time_spent ) into RetVal
        from tasktime t
       where t.task_ref = ???? -- What do I use to represent 'this'
object instance?
       return RetVal;

   end;
 end;
/

insert into tasks values ( 'Task 1' );
insert into tasks values ( 'Task 2' );

insert into tasktime values ( ( select ref(t) from tasks t where t.name = 'Task 1' ), 10 );
insert into tasktime values ( ( select ref(t) from tasks t where t.name = 'Task 1' ), 15 );
insert into tasktime values ( ( select ref(t) from tasks t where t.name = 'Task 2' ), 20 );

select t.SumAllTimeForTask() from tasks t;

Received on Sun Apr 25 1999 - 10:42:28 CDT

Original text of this message

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