Hi all,

I'm trying to return multiple rows from a function, but all I can get with the code below is the first row. I got most of the function below off the net and I think the problem is the first "RETURN" statement, which stops the loop.

CREATE OR replace function getOnCallVol() RETURNS RECORD AS $$
DECLARE
r RECORD; BEGIN
   FOR r IN
           select fname,lname,phone1,phone2,phone3,phone4,phone5
           from events e,volunteer v
where (now() >= starttime and now()<=endtime and e.v_id = v.v_id)
           OR (fname='Backup') limit 2

   LOOP
   return r;
   END LOOP;
RETURN null;

END;
$$ Language plpgsql;

When I run the SQL alone, I get two rows, as I should:
Mary Smith 1111111111 2222222222 3333333333 Backup Cellphone 3319993 However, if I run it via the function (i.e. select getOnCallVol()), I get this:
(Mary,Smith,1111111111,2222222222,3333333333,"","")

Is there another way to get each row returned? I played around with making the function return a "SETOF RECORD" and using "RETURN NEXT", but had no luck.
Thanks,

Bret


--
Bret Schuhmacher
[EMAIL PROTECTED]



---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to