I have the following function:
CREATE or REPLACE FUNCTION public.lov_personinorganization_role_status( varchar, varchar) RETURNS SETOF person_status_in_organization AS $BODY$ DECLARE rec person_status_in_organization%ROWTYPE; role ALIAS FOR $1; from_status ALIAS FOR $2; BEGIN FOR rec IN SELECT * FROM person_status_in_organization lov, status_in_organization_change_lov res WHERE res.role = role AND res.from_status = from_status AND lov.role = res.role AND lov.status = res.to_status ORDER BY lov.display_order LOOP RETURN NEXT rec; END LOOP; -- FOR rec IN person_status_in_organization RETURN; END; -- of lov_personinorganization_role_status $BODY$ LANGUAGE 'plpgsql' VOLATILE;
Where person_status_in_organization is a table.
When I try to invoke it with:
select lov_personinorganization_role_status('Student','Applicant');
I get the error message:
ERROR: set-valued function called in context that cannot accept a set CONTEXT: PL/pgSQL function "lov_personinorganization_role_status" line 15 at return next
Where have I gone astray?
~ TIA ~ Ken |