oracle 存储过程 实际返回的行数超出请求的行数

本来就是要返回多行的那怎么写才能返回多行呢?createorreplacePROCEDUREOPE_SELECT(loginname_iinTBL_OPERATEINFO... 本来就是要返回多行的 那怎么写才能返回多行呢?
create or replace
PROCEDURE OPE_SELECT (
loginname_i in TBL_OPERATEINFO.loginname%type,
name_o out TBL_OPERATEINFO.name%type
) AS
BEGIN
SELECT name into name_o FROM TBL_OPERATEINFO WHERE loginname LIKE '%' || loginname_i || '%' ;
END OPE_SELECT;
展开
 我来答
clitoriscn
2011-07-21 · TA获得超过3628个赞
知道小有建树答主
回答量:3258
采纳率:0%
帮助的人:1532万
展开全部
定义一个数据类型是游标

然后返回这个数据类型的参数就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
psychic0111
2011-07-21 · TA获得超过999个赞
知道小有建树答主
回答量:463
采纳率:100%
帮助的人:223万
展开全部
CREATE OR REPLACE PROCEDURE OPE_SELECT (
loginname_i in TBL_OPERATEINFO.loginname%type,
ref_cursor out sys_refcursor
) AS
BEGIN
open ref_cursor for
SELECT name FROM TBL_OPERATEINFO WHERE loginname LIKE '%' || loginname_i || '%' ;
END OPE_SELECT;
更多追问追答
追问
报错了
追答
你的参数传的是什么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhou279818998
2011-07-21 · TA获得超过1102个赞
知道答主
回答量:88
采纳率:0%
帮助的人:37.2万
展开全部
返回数据集,用游标吧。
追问
用游标 上面的代码应该怎么写
追答
定义一个包,在包头里定义游标变量。
create or replace package PKG_TEST as
type MYCURSOR is REF CURSOR;
PROCEDURE OPE_SELECT (
loginname_i in TBL_OPERATEINFO.loginname%type,
CUR_OUT OUT MYCURSOR) ;
end PKG_TEST;
在包体内写代码:
create or replace package body PKG_TEST as
PROCEDURE OPE_SELECT (
loginname_i in TBL_OPERATEINFO.loginname%type,
CUR_OUT OUT MYCURSOR) AS
BEGIN
OPEN cur_OUT FOR SELECT name FROM TBL_OPERATEINFO WHERE loginname LIKE '%' || loginname_i || '%' ;
END OPE_SELECT;
end PKG_TEST;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式