Como retornar um conjunto de resultados / cursor de um bloco anônimo Oracle PL / SQL que executa o SQL dinâmico?

Eu tenho esta tabela:

ALLITEMS
---------------
ItemId  | Areas
---------------
1       | EAST
2       | EAST
3       | SOUTH
4       | WEST

O DDL:

drop table allitems;

Create Table Allitems(ItemId Int,areas Varchar2(20));
Insert Into Allitems(Itemid,Areas) Values(1,'east');
Insert Into Allitems(ItemId,areas) Values(2,'east');
insert into allitems(ItemId,areas) values(3,'south');
insert into allitems(ItemId,areas) values(4,'east');

No MSSQL, para obter um cursor de um SQL dinâmico, eu posso fazer:

DECLARE @v_sqlStatement VARCHAR(2000);
SET @v_Sqlstatement = 'SELECT * FROM ALLITEMS';
EXEC (@v_sqlStatement); --returns a resultset/cursor, just like calling SELECT 

No Oracle, preciso usar um bloco PL / SQL:

SET AUTOPRINT ON;
DECLARE
 V_Sqlstatement Varchar2(2000);
 outputData SYS_REFCURSOR;
BEGIN
 V_Sqlstatement := 'SELECT * FROM ALLITEMS';
 OPEN outputData for v_Sqlstatement; 
End;
--result is : anonymous block completed

Mas tudo o que recebo é "bloco anônimo concluído".
Como faço para retornar o cursor?
(Eu sei que se eu fizer a AUTOPRINT, ela imprimirá as informações no REFCURSOR (não está imprimindo no código acima, mas isso é outro problema))

Vou chamar esse SQL dinâmico a partir do código (ODBC, C ++) e preciso que ele retorne um cursor.
Como eu faço isso? Estou perplexo.

questionAnswers(4)

yourAnswerToTheQuestion