Můžete to implementovat pomocí slabě napsaného referenčního kurzoru jako návratového typu. To je obzvláště snadné implementovat z klientského rozhraní pomocí JDBC, protože vrácený typ kurzoru lze procházet stejně jako jakýkoli výsledek dotazu a metadata lze zjišťovat z ResultSet.getMetaData(). Zde je příklad:
CREATE OR REPLACE PROCEDURE retrieve_info(field_id in integer, p_cursor in out sys_refcursor)
AS
BEGIN
open p_cursor for 'select * from emp';
END;
Dotaz v uvozovkách může být cokoli vracejícího jakýkoli typ, pro libovolný počet sloupců.