以下是通过procedure生成输出的游标变量
/***********************************************
 *
 *
 *   create a test table
 *
 *
***************************************************/
 create table test( a number,b number);
 insert into test values(111,222);
 insert into test values(11,22);
 insert into test values(1,2);
 
 
 
/***********************************************
 *
 *
 *   create a package to hold the new data type
 *
 *
***************************************************/
 CREATE OR REPLACE PACKAGE TypeDefine
AS
    TYPE Cursor_Test IS REF CURSOR RETURN Test%ROWTYPE;
END;
/
 
/***********************************************
 *
 *
 *    create procedure body
 *
 *
***************************************************/
 CREATE OR REPLACE PROCEDURE sp_test
(resultData IN OUT TypeDefine.Cursor_Test)
AS
BEGIN
    OPEN resultData FOR
    SELECT a,b from test;
    
END;
/
 
/***********************************************
 *
 *
 *   execute the store procedure
 *
 *
***************************************************/
    
    
VARIABLE v ref cursor;
EXECUTE sp_test(:v);
PRINT :v;