Можете да приложите това, като използвате слабо въведен референтен курсор като тип на връщане. Това е особено лесно за изпълнение от клиентски интерфейс с помощта на JDBC, тъй като върнатият тип курсор може да бъде преминат през точно както всеки резултат от заявка и метаданните могат да бъдат запитвани от ResultSet.getMetaData(). Ето един пример:
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;
Заявката в кавички може да бъде всичко, което връща произволен тип, за произволен брой колони.