SQL> create table t_book(bookid varchar2(3),bookname varchar2(50),publish varchar2(50));

Table created

SQL>
SQL> create or replace procedure sp_add_book(bookid in varchar2, bookname in varchar2,publish in varchar2) is
2 begin
3 insert into t_book values(bookid,bookname,publish);
4 end;
5 / Procedure created SQL> select * from t_book; BOOKID BOOKNAME PUBLISH
------ -------------------------------------------------- --------------------------------------------------
1 OracleTestForMine ShenZhenPublish

SQL> create or replace procedure sp_get_mytest(id_in in varchar2,name_out out varchar2,salary_out out number,bonus_out out number,job_out out varchar2) is
2 begin
3 select name,salary,bonus,job into name_out,salary_out,bonus_out,job_out from mytest where id=id_in;
4 end;
5 / Procedure created

SQL> create or replace package sp_pack_mulityqry as
2 type p_cursor is ref cursor;
3 end sp_pack_mulityqry;
4 / Package created

--创建一个游标类
create or replace package sp_pack_pagebycursor as
type p_cursor is ref cursor;
end sp_pack_pagebycursor;
/ --利用存储过程来实现分页功能
create or replace procedure fenye(
tablename in varchar2,
curpage in number,
pagerownum in number,
orderflg in varchar2,
totalrownum out number,
totalpagenum out number,
res_cursor out sp_pack_pagebycursor.p_cursor
) is
--定义sql语句变量
v_sql varchar2(1000);
--定义查询起始下标
v_begin_rownum number:=(curpage-1)*pagerownum+1;
--定义查询结束下表
v_end_rownum number:=curpage*pagerownum;
--执行
begin
--定义数据库查询sql
v_sql:='select * from (select t.*,rownum rn from (select * from '||tablename||' order by salary '||orderflg||') t where rownum<='||v_end_rownum||') where rn>='||v_begin_rownum;
--关联游标和sql
open res_cursor for v_sql;
--查询总记录数
v_sql:='select count(*) from '||tablename;
execute immediate v_sql into totalrownum;
--计算总页数
if mod(totalrownum,pagerownum)=0 then
totalpagenum:=totalrownum/pagerownum;
else
totalpagenum:=totalrownum/pagerownum+1;
end if;
end;
/

 

PL/SQL编程—分页功能(存储过程)的更多相关文章

  1. PL/SQL编程-介绍

    pl/sql是一种编程语言,就像java一样java叫做高级编程语言 什么是编程,编程说到底就是对于数据的操作,数据包括数据库存储的和自己定义的变量常量等等数据,对他们进行逻辑化的处理 以实现特定的功 ...

  2. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  3. pl/sql编程

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  4. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  5. ORACLE PL/SQL编程之八:把触发器说透

    原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...

  6. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  7. ORACLE PL/SQL编程详解(转)

    原帖地址:http://blog.csdn.net/chenjinping123/article/details/8737604 ORACLE PL/SQL编程详解 SQL语言只是访问.操作数据库的语 ...

  8. PL/SQL编程急速上手

    结构化查询语言(SQL)是第四代编程语言的典型,这种命令式的语言更像一种指令,使用它,你只需要告诉计算机“做什么”,而不用告诉计算机“怎么做”.第四代编程语言普遍具有简单.易学.能更快的投入生产等优点 ...

  9. Oracle基础(五)pl/sql进阶(分页过程)

    编写分页过程         通过pl/sql实现分页过程,再该过程中由简单到难一步步深入,目的在于通过该案例熟悉pl/sql的各种存储过程,包,游标.怎样在java中调用等内容的学习. 1.无返回值 ...

随机推荐

  1. java打印和重写toString

    class Person { private String name; public Person(String name) { this.name=name; } } public classPri ...

  2. 在grub的rescue模式修复linux引导

    今天在windows 10系统收到系统更新通知,没看清楚就手贱点了马上更新.以为只是像那些普通更新一样重启一下更新就完了,万万没想到这个是覆盖更新,也就是说这是一个全新的系统更新而不是系统补丁.在安装 ...

  3. Gradle学习系列之一——Gradle快速入门(转)

    参考:https://www.cnblogs.com/davenkin/p/gradle-learning-1.html 记录,不做具体转载

  4. 2014-04-17-网易有道-研发类-笔试题&amp;參考答案

    一套卷子,共10道小题,3道编程大题 一.填空&选择 1.选择:给了一个递归求Fibonacci的代码,问算法复杂度 指数复杂度 2.选择:忘记了,应该不难 3.选择:给你52张除掉大小王的扑 ...

  5. dropload 使用表

    移动端下拉刷新.上拉加载更多插件 依赖 (dependence) Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用) Zepto or jQuery 1. ...

  6. SurvivalShooter学习笔记(七.玩家射击)

    玩家射击:(这个脚本放在玩家的空子物体上,这个位置为枪口位置) 点击鼠标,玩家射击: 射击枪口发光,射击通过射线,方向有激光效果:(关于射线不明白可以参考Unity射线相关) 射击有射击音效 射击有每 ...

  7. Mysql event时间触发器,实现定时修改某些符合某一条件的某一字段

    我最近做项目遇到一个问题就是数据库的的订单需要定时检查自己的订单状态,如果到了endtime字段的时间订单状态还是2,就将订单状态修改为4 在网上找到类似的解决方法. 定时的关键是要结合mysql的某 ...

  8. PowerDesign 使用 用户自定义字段类型 domain 后 生成物理模型图 生成的sql脚本 类型 替换问题

    快捷键 CTRL+G

  9. JavaWeb项目中文乱码问题

    1.从浏览器读数据乱码(post 请求方式) 前提是前端页面是UTF-8编码,因为服务器端默认采用ISO解码,所以乱码,在读取前加上: request.setCharacterEncoding(&qu ...

  10. 【Lombok】了解

    项目中使用了 Lombok ,对象无需写get set 等方法,一个注释便可以搞定.IDEA中项目报错,下载对应插件(Lombok Plugin)就好了.很神奇,就了解一下: 官网: Project ...