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; 展开
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; 展开
3个回答
展开全部
定义一个数据类型是游标
然后返回这个数据类型的参数就可以了
然后返回这个数据类型的参数就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
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;
更多追问追答
追问
报错了
追答
你的参数传的是什么?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回数据集,用游标吧。
追问
用游标 上面的代码应该怎么写
追答
定义一个包,在包头里定义游标变量。
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询