Hi all,
I'm trying to use a cursor returned by a function from another function. But I can't seem to get it working correctly. The error message is:
ERROR: cursor FOR loop must use a bound cursor variable
I am not sure how to bind it;
my code is similar to this:
create or replace function store_normalize(groupid_in varchar(20)) RETURNS int AS $$
DECLARE
outputcursor refcursor;
normrow_r record;
BEGIN
perform normalize('outputcursor', groupid_in);
for normrow_r in outputcursor loop
insert into factordata(factorid, stockid, value, date)
values (normrow_r.factorid, normrow_r.stockid, normrow_r.value, normrow_r.date);
end loop;
close ouputcursor;
END LOOP;
return 1;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION normalize(outputcursor refcursor,
groupid_in varchar(20)
) RETURNS refcursor AS $$
BEGIN
OPEN outputcursor FOR
select * from factordata where groupid = groupid_in;
RETURN outputcursor;
END;
$$ LANGUAGE plpgsql;
cheers.
Marc