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;
你需要写到一个包中:
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;
谢谢你的帮助,我的问题是这样的:我想返回一个数据集,但是这个数据集有两个SELECT语句,那个子SELECT语句返回了多条的记录,这样在ORACLE中会报错,说我的子查询返回了多个值,也就是那个isnull((select isnull(t_wdnr,'') from subtable where 条件,'') t_wdnr 这句话包含的子查询,但在SQLSERVER中可以这么用。刚开始我想直接用游标返回,但不行。所以后来我想把它插到一个临时表再用游标返回,但还是一样的,请帮我看看好吗,谢谢了
你的select isnull(t_wdnr,'') from subtable where 条件
这条语句返回了多行
这个位置肯定是不允许的,sql server也不会允许一行数据中的某个字段有多个值。