Oracle数据库分页的存储过程

最近在复习oracle数据库,只能说oracle数据库实在是太强大了,当然学习起来也就复杂了。下面是使用oracle的分页算法的存储过程,拿出来大家参考一下吧。

  我认为其中涉及到的包,游标,exception是有点难理解难记忆的,大家可以参考一下相关的书籍好好理解理解~~


//oracle分页存储过程

create or replace proceduce fenye(tableName in varchar2,pageSize in number,pageNow in number,myRowCount out number,myPageCount out number,

p_cursor out t1.t---返回记录数的游标

)

is

--定义部分

v_sql varchar2(500);

v_begin number:=(pageNow-1)*pageSize+1;

v_end number:=pageNow*pageSize;

begin

--开始执行部分

v_sql:='select * from (select t1.*,rownum rn from(select * from '||tableName||') t1 where rownum<='||v_end||')where rn>='||v_begin||'':这表示显示的是第六到第十页的数据

--把游标和sql语句关联

open p_cursor for v_sql;

--计算myRowCount和myPageCount

v_sql:='select count(*)from '||tableName||'';

execute immediate v_sql into myRowCount--执行sql语句并把返回的值赋给myRowCount

--计算myPageCount

if mod(myRowCount,pageSize)=0 then

myPageCount:=myRowCount/pageSize;

else

myPageCount:=myRowCount/pageSize+1;

end if;

--关闭游标

close p_cursor;

end;

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-30 16:28:49

Oracle数据库分页的存储过程的相关文章

oracle 分页查询-Oracle数据库分页查询

问题描述 Oracle数据库分页查询 分页查询语句.之前用java获取分页信息是分两步走的,首先获取想要得到的字段信息,第二部获取总记录数count(*).现在因为种种原因,就是想请教高手一下,能不能在一个sql中,查询出这些信息包括总记录数.比如 表 test 字段有id,name. select * from (select A.*,ROWNUM RN from(select * from test) A where ROWNUM<=11) where RN>=1; 这是分开写时,查询的语

java频繁连接、调用oracle数据库的某存储过程,且存储过程返回游标在JAVA中遍历,使用什么连接,或什么方式效率比较好??

问题描述 java频繁连接.调用oracle数据库的某存储过程,且存储过程返回游标在JAVA中遍历,使用什么连接,或什么方式效率比较好??

.net中使用oracle数据库分页的土办法

近日公司一网站项目,要调用其它系统(call center系统)的oracle数据库数据,只能连接查询,无法创建存储过程,所以只能在sql语句上动脑筋实现分页: /// <summary>         /// Oracle通用分页查询函数 by 菩提树下的杨过 2010-01-07         /// </summary>         /// <param name="tableName">表名</param>        

oracle数据库分页查询实例小结

Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用.   分页查询格式:  代码如下 复制代码 SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21   其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的

PHP 留言簿(带Oracle数据库分页的显示功能)

oracle|分页|数据|数据库|显示 大部份的网站,都会考虑到和使用者之间的互动关系.这时,用留言版的功能,可让使用者留下到此一游,或者是一些和网站的互动讯息. 在设计上,可以很简单的只留下使用者的短篇留言,也可以设计到依性质分门别类很复杂的 Web BBS 系统.当然,要如何打造一个属于自己网站的留言版,就端赖网站的性质以及 Web 网站开发人员的巧思了. 在这里介绍的范例,是简单的列示所有留言的内容.供使用者可以一次看到多笔留言的资料.系统的后端存放留言是用 Oracle 7.x 版的资料

带Oracle数据库分页显示功能的留言簿(3)

oracle|分页|数据|数据库|显示 程序分成四部份 1.. 初始化 2.. 取数据库中的数据 3.. 计算要显示的页数 4.. 送出资料 这个程序在 BIGLOBE 上有实作,由于这是一间 ISP 公司,因此在设定时限定连结或专线的会员才能看到,进入前要输入帐号及密码.为了保护留言者的隐私,留言以马赛克处理. $WebmasterIPArray = array( "10.0.1.30", // 管理人员甲的机器 IP "10.0.2.28" // 管理人员乙的机

带Oracle数据库分页显示功能的留言簿(2)

oracle|分页|数据|数据库|显示 再来就是整理资料,以便置入 Oracle 资料库中 $serial=md5(uniqid(rand())); $ref=""; $id=$PHP_AUTH_USER; $ip=$REMOTE_ADDR; $msg=base64_encode($msg); $flag="1"; $query="INSERT into guestbook(serial, ref, id, alias, ip, msgdate, emai

带Oracle数据库分页显示功能的留言簿(1)

oracle|分页|数据|数据库|显示 大部份的网站,都会考虑到和使用者之间的互动关系.这时,用留言版的功能,可让使用者留下到此一游,或者是一些和网站的互动讯息. 在设计上,可以很简单的只留下使用者的短篇留言,也可以设计到依性质分门别类很复杂的 Web BBS 系统.当然,要如何打造一个属于自己网站的留言版,就端赖网站的性质以及 Web 网站开发人员的巧思了. 在这里介绍的范例,是简单的列示所有留言的内容.供使用者可以一次看到多笔留言的资料.系统的后端存放留言是用 Oracle 7.x 版的资料

Oracle数据库游标在存储过程中的使用

作为关系型数据库市场的老大,Oracla占有举足轻重的地位.虽然在操作上不如SQLSERVER那样方便,但是他的强大的功能还是吸引来大批大批的追随着.本人作为ORACLE菜鸟,在工作当中也偶尔使用Oracle.以下记录的上由于工作需要写的Oracle的<br>使用游标的储存过程,个人觉得比较有代表性.希望给初学者一定的帮助,也给自己加深一下印象. 在ORACLE中,他以一个语句块为一个默认的事务.也就是说,如果你就单单只执行一段ORACLE的语句块,他默认是以事务的形式执行的. CREATE