`
hehch
  • 浏览: 40549 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

PLSQL分頁

 
阅读更多
--PLSQL分頁過程
create or replace procedure fenye
(tableName in varchar2,  --表名
 page_size in number,   --每頁顯示記錄數
 pageNow  in number, --當前頁
 myrows  out number, -- 總記錄數
 myPageCount out number, --總頁數
 my_cursor out my_new_pack.test_cursor --返回的結果集
)is
--定義SQL語句  字符串
v_sql varchar2(1000);
v_begin number := (pageNow-1)*page_size+1;
v_end number := pageNow*page_size;
begin
 v_sql :=  'select * from (select t1.*,rownum rn from (select * from '||tableName
 ||')t1 where rownum<='||v_end||' )where rn>='||v_begin;
 open my_cursor for v_sql;
 v_sql :='select count(*) from '|| tableName;
 execute immediate v_sql into myrows;
 if mod(myrows,page_size) =0 then
 myPageCount := myrows/page_size;
 else myPageCount := myrows/page_size+1;
 end if;
end;


JAVA調用代碼:
import java.sql.*;

public class test {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Connection conn = null;
  CallableStatement cs = null;
  ResultSet rs =null;
  try{
   Class.forName("oracle.jdbc.driver.OracleDriver");
   conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:kelvin111G2","system","MANAGER");
   cs = conn.prepareCall("{call fenye(?,?,?,?,?,?)}");
   cs.setString(1, "scott.emp");
   cs.setInt(2, 5);
   cs.setInt(3, 2);
   cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);
   cs.registerOutParameter(5,oracle.jdbc.OracleTypes.INTEGER);
   cs.registerOutParameter(6,oracle.jdbc.OracleTypes.CURSOR);
   cs.execute();
   System.out.println("總記錄數為"+cs.getInt(4));
   System.out.println("總頁數"+cs.getInt(5));
   rs = (ResultSet)cs.getObject(6);
   while(rs.next()){
    System.out.println(rs.getInt(1)+"==="+rs.getString(2)+"==="+rs.getString(3));
   }
  
  }catch(Exception e){
   e.printStackTrace();
  }finally{
    try {
     rs.close();
     cs.close();
     conn.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
  }
 
 }
}
分享到:
评论

相关推荐

    利用PLSQL实现分页查询代码.rar

    本压缩包"利用PLSQL实现分页查询代码.rar"主要关注的是如何在Oracle环境中通过PL/SQL来执行分页查询,这对于处理大量数据时提升性能和用户体验至关重要。 分页查询是一种在大量数据中只显示一部分(例如,每页10条...

    java调用PLSQL分页过程.doc

    ### Java调用PL/SQL分页过程详解 #### 一、背景介绍 在现代软件开发中,Java 和数据库之间的交互非常频繁。对于大型系统来说,数据处理能力是至关重要的,尤其是在处理大量数据时,如何有效地分页显示这些数据是一...

    韩顺平Oracle版的分页查询

    本教程以"韩顺平Oracle版的分页查询"为主题,结合MyEclipse进行Web开发,旨在教授如何在Oracle数据库中实现高效且实用的分页查询。 首先,我们需要理解Oracle中实现分页查询的基本概念。在SQL语句中,通常使用`...

    PLSQL排序 中文版

    PLSQL,全称为Procedural ...总的来说,这个资源包提供了全面的PLSQL排序学习材料,涵盖了基础的`ORDER BY`、分组排序、分页排序以及可能的自定义排序实现,对于想深入理解PLSQL排序机制的学习者来说是一份宝贵的资料。

    sql分页、jsp分页

    jsp分页、PLSQL中用Group by和Having来实现分组统计、SQL_server_海量数据库查询优化及分页算法、SQL_SERVER数据库中实现快速的数据提取和数据分页、SQLServer 2005下的分页SQL、sql分页查询、sql数据库模糊查询分页...

    plsql developer 绿色版 Oracle 必备软件

    对于大数据量的处理,支持分页显示和导出数据至各种格式,如CSV、Excel等。 5. **调试器**:PLSQL Developer的调试功能是其一大亮点,它支持设置断点、单步执行、查看变量值,以及跟踪程序流程,这对于调试复杂的PL...

    北风网项目培训PLSQL编程之BBS实战项目第二讲

    5. 游标:在处理大量数据时,游标允许我们逐行处理结果集,这对BBS中的数据分页展示、按需加载等场景非常有用。 6. 包(Package):PL/SQL中的包可以将相关的变量、常量、过程和函数组织在一起,形成模块化的代码,...

    oracle 数据库 plsql 存储过程

    - **使用ROWNUM**:通过ROWNUM来限制查询结果集的范围,实现简单的分页查询。 - **使用ANALYTIC函数**:如`ROW_NUMBER()`等,更灵活地实现分页查询。 通过上述介绍,我们可以看到Oracle存储过程不仅能够提高应用...

    plsql7.15版本

    对于大型表,工具还支持数据分页显示,避免内存压力。 表单设计功能让非程序员也能通过拖拽方式创建简单的数据输入界面,这在数据录入或演示场景中非常实用。而数据库对象管理则涵盖了创建、修改、删除等操作,包括...

    oracle 高效分页

    ```plsql CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; PROCEDURE prc_query( p_tableName IN VARCHAR2, p_tableColum IN VARCHAR2, p_strwhere IN VARCHAR2, p_curPage IN OUT ...

    Oracle_PLSQL_存储过程

    实现高效分页的一种常见方法是在存储过程中使用ROWNUM。ROWNUM是Oracle内部自动生成的一个伪列,可以用于对查询结果进行快速排序。 **示例:** ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_start_row...

    PLSQL到处用户对象和表

    - **分页查询**:在大量数据处理时,分页查询是一种常见的优化手段。通过限制每次查询的数据量,可以提高查询效率。在Oracle中,可以使用ROWNUM函数或者窗口函数ROW_NUMBER()来实现分页查询。 - **XML导出**:对于...

    PLSQL Developer

    对于大型数据集,可以进行分页和过滤,以便高效地处理。 **5. 版本控制集成** 为了协同开发,PLSQL Developer支持与常见的版本控制系统(如Git、SVN)集成,便于代码版本管理和团队协作。 **6. 报表和图表** 该...

    存储过程实现分页

    ```plsql DECLARE c NUMBER; cur MaterialManage.T_CURSOR; BEGIN MaterialManage.Per_QuickPage('system.t_in_goods_desc', '*', '1=1', '', 0, 10, c, cur); DBMS_OUTPUT.PUT_LINE(c); END; ``` 在.NET框架中...

    oracle的 分页sql语句

    ### Oracle 分页 SQL 语句详解 #### 一、引言 在数据库操作中,分页查询是非常常见的需求之一,特别是在大数据量的情况下,通过分页技术可以有效地提高系统的响应速度和用户体验。Oracle 数据库提供了多种方式进行...

    学习oracle笔记-PLSQL

    - **编写分页过程**:利用存储过程实现数据分页显示,提高查询效率和用户体验。 - **示例**:创建一个分页存储过程,接收参数如当前页码和每页记录数,返回指定范围内的记录。 #### 例外处理 - **概念**:用于捕获...

    PLSQL基础,sql优化

    本文将深入探讨“PLSQL基础”和“SQL优化”这两个关键知识点,结合压缩包内的文件,我们将逐步解析各个章节的核心内容。 首先,让我们从第一章“认识ORACLE”开始。Oracle是世界上最广泛使用的数据库管理系统之一,...

    一个Oracle分页的存储过程

    ```plsql CREATE OR REPLACE PROCEDURE get_paged_data ( table_name VARCHAR2, sort_column VARCHAR2, start_row NUMBER, end_row NUMBER ) AS sql_query VARCHAR2(4000); BEGIN -- 检查并处理输入参数 IF ...

Global site tag (gtag.js) - Google Analytics