pl/sql 过程分页显示小案例
:编写一个过程,要求可以输入表名,输入每页显示的记录数,输入当前页,返回总记录数,总页数,和返回的结果集
---------------------------------------------------------------------
SQL>create or replace package testPackage as type test_cursor(游标名) is ref cursor(游标)
end testPackage
SQL>create procedure p8(table_name in varchar2,--表名
pageSize in number, --当前显示的记录数
pageNow in number,--当前页
--下面都是要返回的内容,其值在过程处理中赋予
myrows out number, --总记录数
myPageCount out number, --总页数
p_cursor out testPackage.test_cursor --返回的结果集
) is
--定义sql语句
v_sql varchar2(1000);
v_begin number := (pageNow - 1)*pageSize + 1; -- 每页显示的最少数
v_end number := pageNow * pageSize; --每页显示的最大数
bgein
v_sql := 'select * rownum from (SQL>select a1.*,rownum rn from (select name,sal from '||table_name||')
a1 where rownum<='||v_end||') where rownum>'||v_begin||'';
open p_cursor for v_sql; --打开一个游标,将游标和sql语句关联起来
v_sql : = 'select count(*) from '||table_name''; --计算myrows和myPageCount
execute immediate v_sql into myrows ; --执行sql,并把返回值赋给myrows来记录总记录数
if mod(myrows,pageSize)= 0 then --计算总页数,注意思路,很好理解
myPageCount := myrows/Pagesiez;
else
myPageCount := myrows/Pagesiez + 1;
end if
close p_cursor; --关闭游标
end;
/
------------------------------------------------------------------------------------------------------
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:
CallableStatement cs = ct.prepareCall("{call p8(?,?,?,?,?,?)}");
//给?赋值
cs.setString(1,"myTable");
sc.setInt(2,5);
sc.setInt(3,1);
//给out参数?赋值
cs.registOutPrameter(4,oracle.jdbc.OracleTypes.INTEGER);//这侧记录总数
cs.registOutPrameter(5,oracle.jdbc.OracleTypes.INTEGER);//注册总页数
cs.registOutPrameter(6,oracle.jdbc.OracleTypes.CURSOR);//注册返回的结果集
//执行
cs.execute();
//得到结果集
ResultSet rs = (ResultSet) cs.getObject(6);
//取出总记录数
int rowNum = cs.getInt(4);
//返回总页数
int pagecount = cs.getInt(5);
while(rs.next()){
System.out.println(rs.getInt(1) + "--" + rs.getString(2));
}
//关闭相关资源,此处略写
---------------------------------------------------------------------
pl/sql 过程分页显示小案例相关推荐
- 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。
多表联合查询 一个根据机场查询航线的例子.有两张表,机场表包含机场信息:机场id.机场名字.机场城市. 航班包含航线信息:航班id.飞机编号.飞行时间.票价.起飞机场id.降落机场id. 需要查询的结 ...
- 十一、PL/SQL过程
文章目录 一.创建过程 二.过程传入和传出参数 2.1 模式 2.2 形参和实参 2.3 使用参数值传入约束(数据类型) 2.4 匹配形参和实参 2.6 带参数的存储过程 2.7 调用存储过程 子程序 ...
- pl/sql过程化语言
plsql过程化语言 --控制输出-- declare begindbms_output.put_line('hello/plsql'); end; --变量的声明和使用-- declarev_num ...
- Moment.js插件学习:制作一个时间显示小案例
插件地址:http://momentjs.cn/ Moment.js是一个原生JavaScript 日期处理类库,使用起来也非常简单.但是注意它所得到的结果都是一个字符串,并且可以改变时间显示的格式. ...
- pl/sql过程(一)
--练习1:求100以内的素数 declaren int := 100;--100以内的素数i number(3);--循环100个数j number(3);--内循环k number(3);--统计 ...
- oracle pl sql示例,oracle PL SQL学习案例(一)
oracle PL SQL学习案例(一) [示例1.1] 查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...
- pl/sql developer oracle生僻字显示问题
一.问题由来 随着国标GB18030的推行,各行各业都在如火如荼的落实改造.自己在工作中也发现很多问题,查阅了很多资料都未解决自己的问题.经过慢慢摸索,对生僻字经常出现的问题进行总结,现 ...
- Oracle学习笔记(最重要的是PL/SQL编程)
一:Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create databa ...
- Oracle PL/SQL编程详解
Oracle PL/SQL编程详解 - 古立 - 博客园 <我的网络摘抄本> 网摘/转载/备忘/随记 博客园 首页 新随笔 联系 管理 订阅 随笔- 84 文章- 0 评论- 0 & ...
- PL/Sql循序渐进全面学习教程(下)(ZT)
课程一.声明变量 本课重点: 1.了解基本的PLSQL块和区域 2.描述变量在PLSQL中的重要性 3.区别PLSQL与非PLSQL变量 4.声明变量 5.执行PL ...
最新文章
- PCL特征点与配准(1)
- 测试基础 – 软件测试计划
- Cordova:安卓启动页图片变形
- BZOJ 1132 [POI2008]Tro(极角排序)
- 虚荣的程序员--恶心,真的想吐
- LwIP tcp/ip socket编程listen函数分析
- 【PyTorch】eval() ==>主要是针对某些在train和predict两个阶段会有不同参数的层,比如Dropout层和BN层
- IPV6 Socket编程
- 他开发了 redux,昨晚字节一面却挂了?
- float占多少字节 java,Java语言中,float类型所占存储空间为()个字节。
- 加好友饥荒服务器没有响应,饥荒进不去别人的服务器 | 手游网游页游攻略大全...
- class0:计算机的潜意识——机器学习
- cad卸载工具_Adobe软件卸载与常见问题解决方案
- bootstrap3.x popover报错Cannot read property 'off' of null
- c语言假币问题的编程,假币问题 (C语言代码)
- 智齿科技推首款智慧客服产品:机器人代替人工
- 2022-2028全球及中国双输入RTD温度计行业研究及十四五规划分析报告
- 【Ubuntu+ROS安装方法】
- 计算机毕业设计Java电影售票系统(源码+系统+mysql数据库+lw文档)
- 网曝最牛点餐方式:顾客人手一个iPad
热门文章
- rust大油井频率怎么用_90%的人都不会用电吹风!用不好危害大!1分钟告诉你到底怎么用...
- 谷粒商城:SPU管理规格显示404
- Javascript算法:非固定宽度滑动窗口算法
- Guava学习笔记(四):复写的Object常用方法
- Python Numpy中reshape函数参数-1的含义
- 论文笔记_S2D.48_2017-IEEE RAL_单视图和多视图深度融合
- jsp页面如何通过href跳转到另一个jsp
- scrapy数据存储在mysql数据库的两种方式
- s5p6818开发板uboot网络开通
- Ajax的load方法