oracle函数能返回多个结果吗,从IF语句中的PL / SQL函数返回多个值

嗨 - 我正在尝试让我的函数返回select语句中的所有(8)值。根据我在SO上发现的内容尝试了几个变体,但只能让它返回单个值而不是全部8.新的PL / SQL和第一个发布的SO - 我在MSSQL中有相同的运行但是完全不同在PL / SQL中。任何帮助表示赞赏

###尝试1 - 仅返回第一个值

create or replace FUNCTION "SP_SETGRIPSTAGE" (gripNoIn NUMBER, docNoIn NUMBER)

RETURN VARCHAR2

IS

PW_GRIP NUMBER := gripNoIn;

PW_DOCID NUMBER := docNoIn;

resultOut VARCHAR2(1);

CURSOR c1

IS

SELECT pw_code FROM ENV_LKP_GRIP ORDER BY pw_code;

BEGIN

IF PW_DOCID > 0 THEN

RETURN PW_GRIP;

ELSE

OPEN c1;

FETCH c1 into resultOut;

END IF;

CLOSE c1;

RETURN resultOut;

END SP_SETGRIPSTAGE;

###尝试2 - 仅返回最后一个值

create or replace FUNCTION "SP_SETGRIPSTAGE" (gripNoIn NUMBER, docNoIn NUMBER)

RETURN VARCHAR2

IS

PW_GRIP NUMBER := gripNoIn;

PW_DOCID NUMBER := docNoIn;

resultOut VARCHAR2(1);

CURSOR c1

IS

SELECT pw_code FROM ENV_LKP_GRIP ORDER BY pw_code;

BEGIN

IF PW_DOCID > 0 THEN

RETURN PW_GRIP;

ELSE

OPEN c1;

LOOP

FETCH c1 into resultOut;

EXIT WHEN c1%NOTFOUND;

END LOOP;

RETURN resultOut;

END IF;

CLOSE c1;

END SP_SETGRIPSTAGE;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值