DB2的的解决方案: 1.声明存储过程的时候,在声明之后添加 RESULT SETS 1,表示返回一个结果集,示例如下: CREATE PROCEDURE YOUPRO(IN P_UserId INTEGER) LANGUAGE SQL RESULT SETS 1 ------------------------------------------------------------------------ -- SQL 存储过程(获取用户信息) ------------------------------------------------------------------------ P1: BEGIN --声明会使用到的参数 .... .... ... ..... 2.在存储过程中声明一个游标,然后返回,示例如下: DECLARE C1 CURSOR WITH RETURN FOR SELECT *FROM TABLE; OPEN C1;
Oracle的解决方案: 1.先定义一个包,示例如下: create or replace package CursorPackage as type my_cursor is ref cursor; end CursorPackage; 2.在存储过程返回参数使用这个定义的参数,示例如下: create or replace procedure YOUPRO(P_UserId IN NUMBER, C_Return OUT CursorPackage.my_cursor)IS ... ... .. 3.存储过程中,给返回参数赋值,示例如下: OPEN C_Return FOR SELECT * FROM TABLE;