转自:http://blog.csdn.net/feiliu010/article/details/1538822
Oracle中函数/过程返回结果集的几种方式:
以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过.(1) 返回游标:
return的类型为:SYS_REFCURSOR
之后在IS里面定义变量:curr SYS_REFCURSOR;
最后在函数体中写:
open cur for
select ......;
return cur;
例:
CREATE
OR
REPLACE
FUNCTION
A_Test(
orType varchar2
) RETURN SYS_REFCURSOR
is
type_curSYS_REFCURSOR;
BEGIN
OPEN type_cur FOR select col1,col2,col3 from testTable;
type_cur;
END ;
orType varchar2
) RETURN SYS_REFCURSOR
is
type_curSYS_REFCURSOR;
BEGIN
OPEN type_cur FOR select col1,col2,col3 from testTable;
type_cur;
END ;
(2)返回table类型的结果集:
首先定义一个行类型:
TYPE"SPLIT_ARR"
AS
OBJECT(nowStr
(
18
))
其次以此行类型定义一个表类型:
TYPE"SPLIT_TAB" TABLE of split_arr;