Oracle实践--PL/SQL综合之分页存储过程
Oracle PL/SQL分页的存储过程
Oracle,分页,存储过程三个词结合起来,来个综合点的小练习,运用之前的PL/SQL创建一个分页的存储过程,仅仅须要简单几步就可以。
1.声明一个引用游标
- create or replace package cur_ref_type
- as-- is or as can be used
- type cur_ref is ref cursor;
- end;
2.编写存储过程
- create or replace procedure divideByPge
- (tableName varchar2,pageSize number,currentPage number,
- totalPage out number,totalRecord out number,results out cur_ref_type.cur_ref)--要带包名
- is
- v_sql varchar2(200);--用于写sql语句的
- v_begin number;--開始位置
- v_end number;--结束位置
- begin
- v_begin := (currentPage -1) * pageSize;
- v_end := currentPage * pageSize;
- v_sql :='select count(*) from '||tableName;--将表名字符串拼接sql语句
- execute immediate v_sql into totalRecord;--查询全部记录
- totalPage :=ceil(totalRecord/pageSize);--计算总页数
- v_sql :='select * from (select rownum rn,'||tableName||'.* from '||tableName||' where rownum <= '||v_end||') where rn > '||v_begin;
- open results for v_sql;
- end;
3.Javaclient调用
- String driver ="oracle.jdbc.driver.OracleDriver";
- String url = "jdbc:oracle:thin:@localhost:1521:orcl";
- String username = "scott";
- String password = "ysjian";
- try {
- Class.forName(driver);
- Connection conn =
- DriverManager.getConnection(url,username,password);
- CallableStatement cs = conn.prepareCall("{call
- divideByPge(?,?,?,?,?,?)}");
- cs.setString(1,"emp");//表名
- cs.setInt(2, 3);//分页单位
- cs.setInt(3, 1);//当前页
- cs.registerOutParameter(4, OracleTypes.INTEGER);//注冊输出參数
- cs.registerOutParameter(5, OracleTypes.INTEGER);
- cs.registerOutParameter(6, OracleTypes.CURSOR);//注冊输出參数游标
- cs.execute();//运行
- ResultSet rs = (ResultSet)cs.getObject(6);//获得游标
- while(rs.next()){
- int empno = rs.getInt("empno");
- String ename = rs.getString("ename");
- System.out.println(empno+"-->"+ename);
- }
- } catch (ClassNotFoundException | SQLException e) {
- e.printStackTrace();
- }
文章来源:http://blog.csdn.net/ysjian_pingcx/article/details/25745313
Oracle实践--PL/SQL综合之分页存储过程的更多相关文章
- 使用oracle 的 PL/Sql 定时执行一个存储过程
CSDN日报20170322--<关于软件研发的一些体会总结> 同步博客至 CSDN ,让更多开发者看到你的文章 看微博技术大咖解析互联网应用架构实战 使用oracle 的 PL/Sql ...
- Oracle实践--PL/SQL表分区的基础
PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure Language)和结构化语言(Structured Query Language)结合而成的编程语言.是对SQL的扩展.支 ...
- C#(在WeBAPI)获取Oracle(在PL/SQL)游标类型的存储过程(用到了RefCursor)
需求:WebAPI服务端,通过Oracle数据库的存储过程,获取数据. 在PL/SQL 建立存储过程:(先来最简单的,就是把整个表都查出来) create or replace procedure S ...
- Oracle中PL/SQL简介、基本语法以及数据类型
Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...
- Oracle之PL/SQL编程
PL/SQL(Procedural Language/SQL,过程语言/SQL) 是结合了Oracel过程语言和结构化查询语言(SQL)的一种扩展语言. 优点: (1)PL/SQL具有编程语言的特点, ...
- Oracle中PL/SQL的执行部分和各种流程控制
Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...
- Sql Server通用分页存储过程
Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 ...
- Oracle 数据库基础学习 (八) PL/SQL综合练习
1.定义游标:列出每个员工的姓名.部门名称并编程显示第10个到第20个记录. declare cursor zemp_cursor is (select temp.ename, temp.dname ...
- Oracle 的PL/SQL语言使用
--PL/SQL语言(procedure language 过程化语言) --1.声明类型 declare k number; m ; --Character String buffer too sm ...
随机推荐
- Linux下搭建Memcached缓存系统
首先说下抱歉,博主近期单位经常加班.博客更新有点慢.希望大家理解,草稿箱里存了不少内容,等不忙时候一点点填坑~ 在一般的站点开发学习时候.都会把数据存放在RDBMS(关系型数据库系统(Relation ...
- Xamarin Android 绑定 UVCCamera
这段时间工作上需要在Android设备上读取视频.摄像头用的是奥比中光的3D摄像头.我手上的摄像头的彩色通道使用的的UVC协议的. 在Xamarin上可用的UVC的封装基本上没有,只有一个小伙在Xam ...
- 【u117】队列安排
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1. 先将1号同学安排 ...
- php实现求最小的k个数(日常出错很容易是分号或者$符号忘记写了)
php实现求最小的k个数(日常出错很容易是分号或者$符号忘记写了) 一.总结 日常出错很容易是分号或者$符号忘记写了 二.php实现求最小的k个数 题目描述 输入n个整数,找出其中最小的K个数.例如输 ...
- chrome-vimium在markdown插件的页面失去效果
chrome-vimium在markdown插件的页面失去效果
- android Navigator的高度计算和推断是否显示
进入互联网行业几天了, 从手机行业转到互联网行业也在慢慢的适应: IDE工具的使用(之前一直在Ubuntu 命令行进行开发). 版本号管理工具,代码架构等等这些都须要又一次适应. 好在本人另一些底子, ...
- Android5.0网络之ipv6
移动设备的大量兴起势必进一步加强ip地址不足的危机. ipv6或许成为一种比較好的选择方案. ipv6地址的获取分为两种方式:无状态:有状态 无状态:通过接收路由公告(RA)来设置自己的ipv6地址 ...
- HDU 5387 Clock(分数类+模拟)
题意: 给你一个格式为hh:mm:ss的时间,问:该时间时针与分针.时针与秒针.分针与秒针之间夹角的度数是多少. 若夹角度数不是整数,则输出最简分数形式A/B,即A与B互质. 解析: 先计算出总的秒数 ...
- PatentTips - Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates generally to h ...
- Java设计模式菜鸟系列(二十二)中介者模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40027109 中介者模式(Mediator):主要用来减少类与类之间的耦合的,由于假设类与 ...