http://www.vbip.com/books/1861001789/chapter_1789_10.asp
这篇文章介绍了如何用table类型或者ref cursor类型返回记录集

解决方案 »

  1.   

    我怎么查了一半天也没有查到啊,
    你要是会的话,给我举个例子,
    我的想法是这样:
    declare 
     type rd is record(name varchar2(50),old number(20));
     type team_type is table of rd
     index by binary_integer;
     my_team team_type;
     mynum binary_integer;
     type myrctype is ref cursor;
     cur myrctype ;
     ddd varchar2(50);
     begin
       for mynum in 1..6 loop
           if mynum=1 then
              my_team(mynum).name:='smith';
           elsif mynum=2 then
              my_team(mynum).name:='soto';
           elsif mynum=3 then
              my_team(mynum).name:='james';
           elsif mynum=4 then
              my_team(mynum).name:='wilson';
           elsif mynum=5 then
              my_team(mynum).name:='howlett';
           elsif mynum=6 then
              my_team(mynum).name:='sano';
           end if;
       end loop;
       open cur for select name from my_team;
     end;
      

  2.   

    若水大哥,你说的那个网站不错,我收藏了,
    你说我的想法能不能实现,就是在存储过程中声明一个Table变量,然后赋值,最后用一个Cursor返回变量。
    这样行不行啊?
      

  3.   

    看看这篇文章,应该就是你要的。是asp调用存储过程,返回就是记录集
    http://www.csdn.net/expert/topic/879/879859.xml?temp=.9309656
      

  4.   

    要用包,在包里声明REF CURSOR 类
      

  5.   

    我给你一个例子
    CREATE OR REPLACE PACKAGE Personality
    IS
        cursor c1 IS
            SELECT First_Name, Last_Name FROM People;
         TYPE PeopleCur IS REF CURSOR RETURN c1%rowtype;
         PROCEDURE GetNames
    (
           pGender IN VARCHAR2,
           PeopleCursor in out PeopleCur
    );
    END Personality; 
    CREATE OR REPLACE PACKAGE BODY Personality
    AS
    PROCEDURE GetNames
    (
    pGender IN VARCHAR2,
    PeopleCursor in out Peoplecur
    )
    IS
    begin
        OPEN PeopleCursor FOR
            SELECT First_Name, Last_Name FROM People WHERE gender = pGender;END GetNames;
    END Personality;