:编写一个过程,要求可以输入表名,输入每页显示的记录数,输入当前页,返回总记录数,总页数,和返回的结果集
                    ---------------------------------------------------------------------
                     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 过程分页显示小案例相关推荐

  1. 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。

    多表联合查询 一个根据机场查询航线的例子.有两张表,机场表包含机场信息:机场id.机场名字.机场城市. 航班包含航线信息:航班id.飞机编号.飞行时间.票价.起飞机场id.降落机场id. 需要查询的结 ...

  2. 十一、PL/SQL过程

    文章目录 一.创建过程 二.过程传入和传出参数 2.1 模式 2.2 形参和实参 2.3 使用参数值传入约束(数据类型) 2.4 匹配形参和实参 2.6 带参数的存储过程 2.7 调用存储过程 子程序 ...

  3. pl/sql过程化语言

    plsql过程化语言 --控制输出-- declare begindbms_output.put_line('hello/plsql'); end; --变量的声明和使用-- declarev_num ...

  4. Moment.js插件学习:制作一个时间显示小案例

    插件地址:http://momentjs.cn/ Moment.js是一个原生JavaScript 日期处理类库,使用起来也非常简单.但是注意它所得到的结果都是一个字符串,并且可以改变时间显示的格式. ...

  5. pl/sql过程(一)

    --练习1:求100以内的素数 declaren int := 100;--100以内的素数i number(3);--循环100个数j number(3);--内循环k number(3);--统计 ...

  6. oracle pl sql示例,oracle PL SQL学习案例(一)

    oracle PL SQL学习案例(一) [示例1.1]  查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...

  7. pl/sql developer oracle生僻字显示问题

    一.问题由来        随着国标GB18030的推行,各行各业都在如火如荼的落实改造.自己在工作中也发现很多问题,查阅了很多资料都未解决自己的问题.经过慢慢摸索,对生僻字经常出现的问题进行总结,现 ...

  8. Oracle学习笔记(最重要的是PL/SQL编程)

    一:Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create databa ...

  9. Oracle PL/SQL编程详解

    Oracle PL/SQL编程详解 - 古立 - 博客园 <我的网络摘抄本> 网摘/转载/备忘/随记 博客园 首页 新随笔 联系 管理 订阅 随笔- 84  文章- 0  评论- 0  & ...

  10. PL/Sql循序渐进全面学习教程(下)(ZT)

    课程一.声明变量    本课重点:    1.了解基本的PLSQL块和区域    2.描述变量在PLSQL中的重要性    3.区别PLSQL与非PLSQL变量    4.声明变量    5.执行PL ...

最新文章

  1. PCL特征点与配准(1)
  2. 测试基础 – 软件测试计划
  3. Cordova:安卓启动页图片变形
  4. BZOJ 1132 [POI2008]Tro(极角排序)
  5. 虚荣的程序员--恶心,真的想吐
  6. LwIP tcp/ip socket编程listen函数分析
  7. 【PyTorch】eval() ==>主要是针对某些在train和predict两个阶段会有不同参数的层,比如Dropout层和BN层
  8. IPV6 Socket编程
  9. 他开发了 redux,昨晚字节一面却挂了?
  10. float占多少字节 java,Java语言中,float类型所占存储空间为()个字节。
  11. 加好友饥荒服务器没有响应,饥荒进不去别人的服务器 | 手游网游页游攻略大全...
  12. class0:计算机的潜意识——机器学习
  13. cad卸载工具_Adobe软件卸载与常见问题解决方案
  14. bootstrap3.x popover报错Cannot read property 'off' of null
  15. c语言假币问题的编程,假币问题 (C语言代码)
  16. 智齿科技推首款智慧客服产品:机器人代替人工
  17. 2022-2028全球及中国双输入RTD温度计行业研究及十四五规划分析报告
  18. 【Ubuntu+ROS安装方法】
  19. 计算机毕业设计Java电影售票系统(源码+系统+mysql数据库+lw文档)
  20. 网曝最牛点餐方式:顾客人手一个iPad

热门文章

  1. rust大油井频率怎么用_90%的人都不会用电吹风!用不好危害大!1分钟告诉你到底怎么用...
  2. 谷粒商城:SPU管理规格显示404
  3. Javascript算法:非固定宽度滑动窗口算法
  4. Guava学习笔记(四):复写的Object常用方法
  5. Python Numpy中reshape函数参数-1的含义
  6. 论文笔记_S2D.48_2017-IEEE RAL_单视图和多视图深度融合
  7. jsp页面如何通过href跳转到另一个jsp
  8. scrapy数据存储在mysql数据库的两种方式
  9. s5p6818开发板uboot网络开通
  10. Ajax的load方法