Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Oracle 8 and Object Types
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;
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;
![]() |
![]() |