来个简单点的代码,如下,返回c1后,我如果调用这个函数怎样才能获取到一个结果集?CREATE OR REPLACE FUNCTION return_type_1() RETURNS REFCURSOR AS
DECLARE
    CURSOR c1 FOR SELECT * FROM student;
BEGIN
    OPEN c1;
    RETURN c1;
END;
比如我输入一下sql语句去很执行这个函数
select * from return_type_1();
得到的结果和普通的select语句不一样RETURN_TYPE_1
-------------
C1
请问这种情况如何去调用这个自定义函数才能获取普通select语句那样的结果集CursorselectSQL

解决方案 »

  1.   

    哎,好久了都没有人回复,应该是这样的,函数返回结果集一般不用这种方式,上面提到的例子返回一个引用,这个函数是可以用在另一个函数里的cursor的赋值,如果是返回结果集的话,一般都是凑record,比如rec record;
    select into rec 1,2,3,4;
    return next rec;
    这样  select * from func();得到的就是一个结果集