关于PL/SQL存储过程的调用。。大侠帮帮看看

发布于 2021-11-14 20:41:46 字数 911 浏览 852 评论 8

create or replace procedure proce_zy
(
v_page in pls_integer,--页码:要显示的第几页
v_pageNum in pls_integer,--每页显示几条记录
cur_page out sys_refcursor
)is
v_sql varchar2(1000);
v_begin pls_integer := (v_page - 1)*v_pageNum+1;-- 开始: (当前页-1 ) *每页显示的记录条数 + 1
v_end pls_integer := v_page*v_pageNum;-- 当前页*每页显示的记录条数
begin
v_sql := 'select * from ( select rownum rn,r.* from (select * from t_mc)r)rr where rr.rn between '||v_begin||' and '|| v_end ;

open cur_page for v_sql;

end proce_zy; 

----------下面是块,调用存储过程:上面的存储过程编译都过了,没有错误,下面语句块调用的时候,反正就是有问题。。。  才刚开始学,不是很懂,  还望各位不吝啬教教小弟

declare
cur_all sys_refcursor;
v_all t_mc%rowtype;
begin
proce_zy(1,2,cur_all);
loop
fetch cur_all into v_all;
exit when cur_all%notfound;
dbms_output.put_line(v_all.sname);
end loop;
close cur_all;
end; 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

深巷少女 2021-11-17 11:26:15

继续顶

坏尐絯 2021-11-17 11:15:00

你的意思是要into 一个记录类型?

左岸枫 2021-11-17 11:05:41

我明白你的意思了。 那这样要怎么解决呢?

因为看清所以看轻 2021-11-17 09:20:53

回复
可以使用for v_all in cur_all loop ... end loop;让系统默认给你一个记录类型。ps:没有测试

把回忆走一遍 2021-11-17 09:12:02

回复
哎,我解决不了。。算了。明天在去搞。休息

瑾兮 2021-11-17 03:40:14

帮帮啊

本宫微胖 2021-11-16 07:08:56

顶顶,上帖头。。

爱的那么颓废 2021-11-15 22:06:22

顶顶,上帖头。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文