CREATE OR REPLACE FUNCTION customersInCity (TEXT, REFCURSOR) returns REFCURSOR AS $$ DECLARE cityName TEXT := $1; resultSet REFCURSOR := $2; BEGIN OPEN resultSet for select * from people where homeCity = cityName; return resultSet; END; $$ LANGUAGE PLPGSQL; select customersInCity('Toronto', 'results'); fetch all from results;