Try:
create function foo(text) returns int4 as '
delcaretcount int4:=0;
beginfor rec IN select title, dcount from songs where artist=$1 LOOP tcount:= tcount+rec.dcount;END LOOP;return
tcount;
end;
' language 'plpgsql';
call it by:
db> select foo('Najm Hashmi');
it will return how many songs of 'Najm Hashmi' in your database.
Jie LIANG
St. Bernard Software
Internet Products Inc.
10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873
jliang@ipinc.com
www.stbernard.com
www.ipinc.com
On Sat, 10 Feb 2001, Najm Hashmi wrote:
> Jie Liang wrote:
>
> > I just know you can use implict cursor inside the plpgsql
> > e.g
> > declare
>
> result text;
> tcount int4;
>
> >
> > rec record;
> > begin
> > FOR rec IN select_clause LOOP
> > statements
> > END LOOP;
> > end;
> >
>
> Thank you Jie for your help. I am bit confused about how it works. I want for
> each row , obtained by select statment, get certain values and then do some
> calculations and out put that resulst eg
> for rec IN select title, dcount from songs where artist='xyz'
> tcount:= tcount+rec.dcount;
> END LOOP;
> return tcount;
> would this work ?
> Thanks again for your help.
> Regards, Najm
>
>