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 -> Objects and REFS

Objects and REFS

From: Mark Loukko <mloukko_at_direct.ca>
Date: Wed, 21 Apr 1999 23:02:29 GMT
Message-ID: <371e588a.27521684@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? In C you would use 'this'. Either I'm brain dead (don't ask my wife that question) or I'm missing something simple very. 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 Wed Apr 21 1999 - 18:02:29 CDT

Original text of this message

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