怎么样让存储过程返回数据集
请大家多指点指点啊!我好急切的
这是一个存储过程,怎样改变一先让他返回数据集
create or replace king_test
as
k_id varchar2(50);
K_name varchar2(50);
begin
select * into k_id,k_name; 
end

解决方案 »

  1.   

    返回结果集用package,具体请参考:
    http://community.csdn.net/Expert/topic/4966/4966768.xml?temp=.3448297
      

  2.   

    CREATE OR REPLACE PROCEDURE P_112Pub_GetAllTelCode (
      o_AllTelCode      OUT          PACK_SERVICE.t_RetDataSet
    )
    AS
    BEGIN 
     OPEN o_AllTelCode FOR 'SELECT * FROM dual WHERE 1 = 0 ';
    END;
    -------------------------------------------------------------
    以上就是存储过程其中AGT_PACK_SERVICE是预先定义好的一个包,定义如下:
    CREATE OR REPLACE PACKAGE Pack_Service IS
      TYPE t_RetDataSet IS REF CURSOR;
    END Pack_Service;
      

  3.   

    >包的定义
    1) 包头
    create or replace package mypk
    as
      type t_cursor is ref cursor;
      procedure proc(name varchar2,c out t_cursor,a number);
    end;2) 包体
    create or replace package body mypk
    as
      procedure proc(name varchar2,c out t_cursor,a number)
      as 
      begin
      open c for select * from test where id=a and name=name;
      end proc;
    end;