create or replace package mypage
as
type page_cursor is ref cursor;
procedure get(page_col varchar2, --要查询的列
page_table varchar2, --表名(可有多张)
page_where varchar2,--条件
page_order varchar2, --排序
page_size number, --一页显示的条数
page_currpage number, --当前第几条
page_count out number, --返回总条数
page_result out page_cursor); -- 返回结果集
end mypage;
/
create or replace package body mypage
as
procedure get(page_col varchar2,
page_table varchar2,
page_where varchar2,
page_order varchar2,
page_size number,
page_currpage number,
page_count out number,
page_result out page_cursor)
is
t_sql varchar2(1000);
t_result varchar2(1000);
t_count number;
begin
if page_col is not null then
t_result := 'select '|| page_col || ' from ' || page_table ;
else
t_result := 'select * from ' || page_table ;
end if;
t_sql := 'select count(*) from ' || page_table || ' where 1=1 '|| page_where;
execute immediate t_sql into t_count;
page_count := t_count;
t_result := t_result ||' where rownum between '|| (page_currpage-1) * page_size|| ' and '|| page_currpage * page_size || page_where || page_order ;
open page_result for t_result;
end get;
end mypage;
/
========================调用处=============================
创建连接对象
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@localhost:1521:Test"; //Test为你的数据库的SID
String user = "cowry";
String password = "cowry";
Connection conn = DriverManager.getConnection(url, user, password);
调用
CallableStatement proc = conn.prepareCall("{ call mypage.get(?,?,?,?,?,?,?,?)}");
proc.setString(1, "*"); //要查询的列
proc.setString(2, "resume, RecruitMessage"); //要查询的表名
proc.setString(3, where.toString()); //where条件
proc.setString(4, "order by resume.id desc"); //排序语句
proc.setInt(5, 10); // 每显示多少条
proc.setInt(6, currPage); //当前第几页
proc.registerOutParameter(7, OracleTypes.NUMBER); // 总条数
proc.registerOutParameter(8, OracleTypes.CURSOR); // 查询结果集
proc.execute();
int r = ((OracleCallableStatement) proc).getInt(7); //显示的总条数
ResultSet set = ((OracleCallableStatement) proc).getCursor(8);
while(set.next){
.....
}
分享到:
相关推荐
一个高效的分页存储过程可能如下所示: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_condition VARCHAR2, p_page_num NUMBER, p_records_per_page NUMBER, result OUT SYS_REFCURSOR ) AS v_...
首先,我们来看创建分页存储过程的基本步骤: 1. 创建包规范(Package Specification): 包规范定义了存储过程的接口,包括输入参数、输出参数和返回类型。在示例中,`package_page` 包定义了一个名为 `proc_page...
本文将深入探讨Oracle数据库中的高效分页存储过程及其修改版。 首先,我们要理解什么是分页查询。分页查询是数据库中的一种查询策略,它将结果集分为多个部分,每次只返回一部分(一页)结果给用户。这通常涉及到两...
本文将详细介绍如何在Oracle中创建一个自定义的数据分页存储过程,并给出C#代码的使用示例。 首先,我们创建一个名为`pkg_Pager`的存储过程包,它通常包括两个过程:一个用于计算总记录数,另一个用于获取指定范围...
本文将详细介绍如何在 Oracle 中创建一个用于分页查询并返回总记录数的存储过程。 #### 核心概念 1. **存储过程**:存储在数据库中的可编程对象,可以接受参数、执行操作、返回结果。 2. **分页**:通过限制查询...
1. 创建分页存储过程的基础结构:一个典型的分页存储过程会接受两个参数,一个是当前页数,另一个是每页的记录数。例如: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_page_num IN NUMBER, p_page_...
根据提供的信息,我们可以详细解析如何在Oracle数据库中创建一个包,并在该包内定义一个存储过程来实现分页功能。这种做法通常用于处理大量数据时,以提高查询效率和用户体验。 ### Oracle包与存储过程 #### 一、...
Java调用Oracle分页存储过程是一项常见的数据库操作,尤其在处理大数据量时,为了提高查询效率和用户体验,分页查询显得尤为重要。Oracle数据库提供了一种高效的方法,即通过创建存储过程来实现分页功能,而Java作为...
### Oracle存储过程分页知识点详解 #### 一、Oracle存储过程分页原理及实现方法 在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行...
在这个“Oracle增加、删除、修改和分页存储过程”项目中,我们将深入探讨这四个核心的数据库管理功能,并了解如何在PL/SQL环境中实现它们。 1. **增加(Insertion)**: 在Oracle中,创建一个用于插入数据的存储...
本篇将详细讲解Oracle中的分页存储过程及其重要性。 在Oracle数据库中,分页通常涉及到`ROWNUM`伪列或`RANK()`、`DENSE_RANK()`、`ROW_NUMBER()`等窗口函数。`ROWNUM`用于限制返回的结果集数量,而窗口函数则在结果...
本篇文章将深入探讨Oracle中的分页存储过程,以及如何利用源码和工具来实现这一功能。 在Oracle数据库中,进行分页查询通常涉及到ROWNUM伪列和子查询。ROWNUM是在数据检索时由Oracle自动生成的一个整数值,表示行的...
本教程将深入探讨如何在Java中调用Oracle存储过程来执行分页查询。 首先,我们需要理解分页的基本概念。分页是将大结果集分割成多个小部分,每次只加载一部分数据到内存中,这样可以减少内存消耗,提高响应速度。在...
在这个场景中,我们将深入探讨如何在Oracle中针对emp表实现分页查询的存储过程。 首先,让我们了解什么是分页查询。在大数据量的表格中,一次性加载所有数据可能会对系统性能造成压力,因此通常我们会采用分页的...
本资源包含Oracle分页的`.cs`代码、存储过程以及Aspnetpager分页控件的使用示例,旨在帮助开发者理解和应用这些技术。 首先,我们来探讨Oracle中的分页查询。Oracle数据库支持多种分页方法,其中一种是通过ROWNUM伪...
描述中提到的资源包括异步海量数据分页存储过程,这表明在后端,开发者使用了异步技术来处理大量数据的分页请求,以避免阻塞主线程,提高系统的响应速度。同时,源码可以直接应用于项目中,这对于开发者来说是一个...
首先,我们来看看SQL Server中的分页存储过程。这里展示的是一个名为`usp_GetPageData`的存储过程,用于获取分页数据。这个存储过程接收三个参数:`@pageSize`(每页记录数),`@pageIndex`(当前页数),以及`@...
创建一个通用的分页存储过程,我们需要考虑以下参数: 1. 输入查询(通常作为字符串参数传递):这是用户要执行的查询,不包含分页条件。 2. 开始行号(start_row):指定要开始显示的行号,通常从1开始。 3. 行数...
在提供的"stu.sql"文件中,可能包含了具体的分页存储过程实现或者示例数据。通过分析和运行这个脚本,你可以更好地理解如何在Oracle环境中实现存储过程的分页功能,并将其应用于实际项目中。 总之,Oracle存储过程...