ठीक है, मुझे एक समाधान मिला:
CREATE OR REPLACE FUNCTION getProductById(cid int) RETURNS RECORD AS $$
DECLARE
result RECORD;
BEGIN
EXECUTE 'SELECT * FROM ' || (SELECT ('products.' || (select category_name from category where category_id = cid) || '_view')::regclass) INTO result;
RETURN result;
END;
$$ LANGUAGE plpgsql;
और चयन करने के लिए:
SELECT * FROM getProductById(7) AS b (category_id int, ... );
PostgreSQL 9.x के लिए काम करता है