oracle存储过程如何返回数据集
你需要写到一个包中:
create or replace package pag_cs_power as    type c_Type is ref cursor;
  
FUNCTION FUN_CS_GETDICTLIST(
  v_DictIndex in  varchar2) return c_Type;end pag_cs_power;存储过程代码:FUNCTION FUN_CS_GETDICTLIST(
  v_DictIndex in  varchar2) return c_Type
     as
        c_cursor            c_Type;
begin
   open c_cursor for
      select DICTID,DICTNAME FROM SYS_DICT WHERE DICTINDEX = v_DictIndex;
   return c_cursor;
end FUN_CS_GETDICTLIST;

解决方案 »

  1.   

    TO  bzszp(SongZip) :
    谢谢你的帮助,我的问题是这样的:我想返回一个数据集,但是这个数据集有两个SELECT语句,那个子SELECT语句返回了多条的记录,这样在ORACLE中会报错,说我的子查询返回了多个值,也就是那个isnull((select isnull(t_wdnr,'') from subtable where 条件,'') t_wdnr   这句话包含的子查询,但在SQLSERVER中可以这么用。刚开始我想直接用游标返回,但不行。所以后来我想把它插到一个临时表再用游标返回,但还是一样的,请帮我看看好吗,谢谢了
      

  2.   

    提示信息已经说得很清楚了
    你的select isnull(t_wdnr,'')  from  subtable  where  条件
    这条语句返回了多行
    这个位置肯定是不允许的,sql server也不会允许一行数据中的某个字段有多个值。