Oracle(23)pl/sql编程 分页过程

①带有单个返回值的过程procedure

--------------  带有返回值的过程procedure ------------------
create or replace procedure pro1(v_in_empno in number, v_out_ename out emp.ename%type) is
begin
  select ename into v_out_ename from emp where empno=v_in_empno;
end;
---------------- 另外一种写法 ---as----------------
create or replace procedure pro1(v_in_empno in number, v_out_ename out emp.ename%type) as
begin
  select ename into v_out_ename from emp where empno=v_in_empno;
end pro1;

②带有返回值列表的过程procedure

create or replace package pack1 is
--定义一个游标数据类型
type my_cursor is ref cursor;
end;
/

create or replace procedure pro1(v_in_deptno in number, v_out_result out pack1.my_cursor) is
begin
  --打开游标
  open v_out_result for select * from emp where deptno = v_in_deptno;
  --不能在这里关闭游标
  --close v_out_result;
end;

③带有返回值列表的分页过程procedure

create or replace procedure fenyePro
(v_in_table in varchar2, 
v_in_pagesize in number, v_in_pagenow in number,
v_out_result out pack1.my_cursor) is
--定义变量
v_sql varchar2(2000);
v_start number;
v_end number;

begin
  --计算v_start,v_end
  v_start:=v_in_pagesize*(v_in_pagenow-1) + 1;
  v_end:= v_in_pagesize*v_in_pagenow;

  v_sql:='select t2.* from  (select t1.*, rownum rn from (select * from '
  ||v_in_table||') t1 where rownum<='||v_end||') t2 where rn>='||v_start;
  --打开游标
  open v_out_result for v_sql;

  --不能在这里关闭游标
  --close v_out_result;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADreamClusive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值