`
沙舟狼客
  • 浏览: 161264 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle创建一个分页过程

阅读更多

select * 
from
(select e.*,rownum rn
 from emp e
 where rownum<=10
) t
where t.rn>=6;


create or replace package testpackage as
type   test_cursor        is          ref cursor;
end    testpackage;
/
create or replace procedure fenye
(
       tableName  in        varchar2,--表明
       pagesize   in        number,--每页的记录数
       pageNow     in       number,  --准备到第几页
       myrows      out      number,--总记录数
       myPageCount out      number ,    --总页数
       p_cursor    out      testpackage.test_cursor--返回记录集
       
)      is
       v_sql       varchar2(1000);
       startNo number:=pageNow*pagesize-pagesize+1;
       endNo number:=pagesize*pageNow;
begin
        --dbms_output.put_line(startNo||'      '||endNo);
        v_sql:='select * from (select e.*,rownum rn from '||tableName||' e where rownum<='||endNo||') t where t.rn>='||startNo;
        open p_cursor for   v_sql;
        v_sql:='select count(*) from '||tableName;
        execute immediate v_sql into myrows;
        if mod(myrows,pagesize)=0 then
          myPageCount := myrows/pagesize;
        else
            myPageCount := myrows/pagesize+1;
        end if;
        --close p_cursor;
 end;
/

declare 
myrows  number(4);
mycount number(4);
pcoursor testpackage.test_cursor;
begin
  --my_pro('emp',10,6);
  fenye('emp',2,3,myrows,mycount,pcoursor);
  end;
/

create or replace  procedure my_pro(
       tableName  in    varchar2,
       endNo      in    number,
       startNo    in    number
)      is
pc       testpackage.test_cursor;
v_sql    varchar2(1000);
begin
   v_sql:='select * from (select e.*,rownum rn from '||tableName||' e where rownum<='||endNo||') t where t.rn>='||startNo;
   --v_sql:='select e.* from emp e';
   open pc for v_sql;
   
end;
/
 
分享到:
评论

相关推荐

    Oracle存储过程分页

    这段代码定义了一个包`PackagePagination`,包含一个类型`v_cursor`用于返回结果集的引用游标,以及一个过程`Pagination`。该过程接收四个输入参数和一个输出参数,分别用于控制每页显示的记录数、当前页码、表名...

    Oracle自定义数据分页存储过程

    本文将详细介绍如何在Oracle中创建一个自定义的数据分页存储过程,并给出C#代码的使用示例。 首先,我们创建一个名为`pkg_Pager`的存储过程包,它通常包括两个过程:一个用于计算总记录数,另一个用于获取指定范围...

    oracle存储过程通用分页

    为了实现更高效的分页,我们可以创建一个存储过程,该过程接受两个参数:当前页号(PageNo)和每页记录数(PageSize)。通过计算OFFSET和FETCH NEXT语句,我们可以跳过前几页的数据并只获取所需页面的数据。以下是一...

    Oracle 分页存储过程

    在这个存储过程中,我们首先创建一个内部子查询,其中包含所有满足条件的记录并按照排序列进行排序。然后,外层的子查询只选取ROWNUM小于或等于总页数乘以每页记录数的行,这样就避免了处理超出实际需要的额外行。...

    Oracle 分页的存储过程

    Oracle 分页存储过程是数据库管理中的一个重要概念,它允许用户以特定的页面大小获取数据,而不是一次性获取所有数据,这有助于提高性能并减轻服务器负担。在Oracle中,可以通过创建存储过程来实现这一功能,尤其在...

    oracle包用存储过程图分页

    根据提供的信息,我们可以详细解析如何在Oracle数据库中创建一个包,并在该包内定义一个存储过程来实现分页功能。这种做法通常用于处理大量数据时,以提高查询效率和用户体验。 ### Oracle包与存储过程 #### 一、...

    java Oracle存储过程分页整理

    以下是一个简单的示例: ```java Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "username", "password"); // ...

    Oracle 高效分页存储过程(修改)

    总的来说,Oracle的高效分页存储过程不仅涉及SQL查询的优化,还涵盖了数据库设计、索引策略、并发控制等多个方面。正确理解和应用这些技巧,能显著提升Oracle数据库的分页查询性能,为用户提供更流畅的体验。

    oracle分页查询并返回总记录数据存储过程

    本文将详细介绍如何在 Oracle 中创建一个用于分页查询并返回总记录数的存储过程。 #### 核心概念 1. **存储过程**:存储在数据库中的可编程对象,可以接受参数、执行操作、返回结果。 2. **分页**:通过限制查询...

    通用ORACLE存储过程实现分页和查询

    创建一个通用的分页存储过程,我们需要考虑以下参数: 1. 输入查询(通常作为字符串参数传递):这是用户要执行的查询,不包含分页条件。 2. 开始行号(start_row):指定要开始显示的行号,通常从1开始。 3. 行数...

    Oracle的SQL分页实践

    这里,`ROW_NUMBER() OVER (ORDER BY some_column)`会根据指定的排序列生成一个行号,然后通过`BETWEEN`来选择特定范围的行。 然而,即使使用ROW_NUMBER(),在大表中执行这样的查询仍然可能较慢,因为Oracle必须为...

    SQL Server 存储过程及Oracle SQL语句分页

    这里展示的是一个名为`usp_GetPageData`的存储过程,用于获取分页数据。这个存储过程接收三个参数:`@pageSize`(每页记录数),`@pageIndex`(当前页数),以及`@pageCount`(总页数,作为输出参数)。存储过程首先检查该...

    Oracle All 添加 修改 更新 Oracle分页 emp表 存储过程实现

    以下是一个简单的分页查询存储过程的实现步骤: 1. **创建存储过程**: 在Oracle中,创建存储过程的语法如下: ```sql CREATE OR REPLACE PROCEDURE proc_name (param1 datatype, param2 datatype) AS BEGIN -...

    Oracle分页+.cs代码+存储过程+Aspnetpager分页控件

    Oracle数据库在处理大数据量时,分页查询是一个非常重要的功能,它可以提高网页加载速度,减少服务器负担,并提供更好的用户体验。本资源包含Oracle分页的`.cs`代码、存储过程以及Aspnetpager分页控件的使用示例,...

    java连接Oracle分页显示

    5. **存储过程分页**:在Oracle中,可以创建一个存储过程来处理分页逻辑,这样可以减少与数据库的交互次数,提高效率。存储过程接受页码和每页大小作为参数,返回分页后的结果集。 在Java中,我们可以使用JDBC...

    java oracle数据库过程实现jsp分页

    在Oracle数据库中,我们可以创建一个包含分页逻辑的存储过程,接收两个参数:页数`P`和每页大小`N`,并返回所需的数据。 以下是一个简单的Oracle存储过程示例: ```sql CREATE OR REPLACE PACKAGE page_pkg AS ...

    oracle 增加,删除,修改和分页存储过程

    在Oracle中,创建一个用于插入数据的存储过程通常涉及到定义参数,这些参数将作为新记录的字段值。例如,我们可以创建一个名为`INSERT_EMPLOYEE`的过程,它接受员工的姓名、部门ID和薪水作为输入参数,然后将这些...

    oracle存储过程实现分页

    这里,我们创建了一个名为`fenye1`的过程,它同样实现了基本的分页功能。此外,还有一种更复杂的分页实现,不仅包括了数据查询部分,还包括了总记录数和总页数的计算: ```sql CREATE OR REPLACE PROCEDURE fenye ...

    oracle调用存储过程实现分页

    首先,我们需要创建一个存储过程,这个过程将接收两个参数:起始记录编号(一般为当前页数乘以每页显示的记录数)和每页的记录数。存储过程内部会使用ROWNUM伪列结合查询来实现分页。例如,下面是一个简单的存储过程...

    oracle分页存储过程

    1. 创建分页存储过程的基础结构:一个典型的分页存储过程会接受两个参数,一个是当前页数,另一个是每页的记录数。例如: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_page_num IN NUMBER, p_page_...

Global site tag (gtag.js) - Google Analytics