`

Oralce 写一个分页的存储过程

阅读更多




  有返回值的存储过程(列表 结果集)

  案例:编写一个过程,输入部门编号,返回该部门所有员工的信息。对该题的分析如下:

  由于Oracle的存储过程没有返回值,它的所有返回值都是通过out参数来代替的,列表同样也不例外,但是由于是集合,所以不能用一般的参数,必须要用package,所以分两部分:

  1)建一个包。如下:

  create or replace package testpackage AS TYPE test_cursor

  is ref cursor;

  end testpackage;

  在该包中我定义了一个游标类型 test_cursor

  下面就是写创建过程了

  create or replace procedure chenchuang_pro

  (chenNo in number p_cursor out testpackage.test_cursor) is

  begin

  open p_cursor for select * from emp wheredeptno-chenNo;

  end;

  ---------------------------------------------------------

  要求,编写一个存储过程,要求可以输入表名,每页显示记录数,当前页,返回总记录数,总页数,和返回结果集。(也就是写一个

  分页的存储过程)

  Oracle 的分页:

  在分页的时候,把下面的sql语句当作模板使用

  select * from (select t1.* , rownum rn from (select * from

  emp)t1 where rn<=10) where rn>=6

  --开始编写分页的过程

  先写一个包

  create or replace package testpackage AS TYPE test_cursor

  is ref cursor;

  end testpackage;

  created 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

  -- 定义部分

  ---定义sql语句

  v_sql varchar2(1000);

  v_begin number:=(PageNow-1)*PageSize+1;--分页算法

  v_end number :=PageNow*PageSize;

  begin

  --执行部分

  v_sql:='select * from (select t1.* , rownum rn from (select * from '|| tableName||')t1 where rn<='||v_end||') where rn>='||v_begin;

  --把游标和sql关联

  open p_cursor for v_sql;

  --计算MyRows 和MyJpageCount

  --组织一个sql

  v_sql:='select count(*) from '|| tableName

  --执行sql,并把返回值 赋给MyRows

  excute immediate v_sql into MyRows;

  --计算myPageCount

  if mod (myRows,PageSize )=0 then

  myPageCount:=myRows/PageSize;

  else myPageCount:=myRows/PageSize+1;

  end if ;

  --关闭游标

  close p_cursor;

  end
  • 大小: 34.5 KB
分享到:
评论

相关推荐

    oracle分页存储过程

    oracle分页存储过程,oracle分页存储过程

    Oracle 分页存储过程

    一个高效的分页存储过程可能如下所示: ```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_...

    Oracle分页存储过程

    ### Oracle分页存储过程解析与应用 在数据库管理和应用程序开发中,处理大量数据时,分页查询是一项常用且重要的技术。Oracle数据库提供了多种方法来实现数据分页,其中使用存储过程进行分页是一种高效且灵活的方式...

    Oracle 分页存储过程 终极版

    "Oracle分页存储过程 终极版"旨在提供一个高效、灵活的解决方案,以应对各种分页查询的需求。这个存储过程优化了性能,并支持各种条件筛选和排序,使得在海量数据中进行分页操作变得更为便捷。 首先,理解分页的...

    ORACLE分页存储过程

    之前一直用SQL SERVER做项目,但是现在需要用到ORACLE,在网上找了几个都无法正常调用,因此自己写了一个,给大家一起分享,在写的过程中学习到了很多东西,同时也体会到了SQL SERVER和ORACLE中的异同点 在分页存储...

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

    总的来说,通过自定义的Oracle分页存储过程,开发者可以方便地实现数据库的高效分页查询,同时保持代码的整洁和可维护性。在实际项目中,可以根据具体需求进行调整和优化,以达到最佳性能和用户体验。

    Oracle 分页的存储过程

    总结来说,Oracle分页存储过程是通过动态构造SQL语句,结合输入的分页参数,计算出总页数,并返回指定页的数据。这种方式在处理大量数据时提高了效率,同时也提供了灵活的查询控制。通过包装这些逻辑在存储过程中,...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    Oracle 存储过程分页

    Oracle 存储过程是数据库管理中的一个重要组成部分,它允许开发者编写复杂的SQL和PL/SQL代码,然后在数据库中以函数或程序的形式存储和调用。在处理大量数据时,分页查询是必不可少的,它可以有效地减少网络传输的...

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

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

    Oracle通用数据库存储过程代码--高效分页存储过程

    标题“Oracle通用数据库存储过程代码——高效分页存储过程”表明这是一个适用于Oracle数据库的存储过程,主要用于实现高效的分页查询功能。 #### 描述解析 描述部分简述了此存储过程的特点:“Oracle通用数据库存储...

    Oracle存储过程分页

    ### Oracle存储过程分页知识点详解 #### 一、Oracle存储过程分页原理及实现方法 在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行...

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

    一个分页存储过程,如`GET_EMPLOYEES_BY_PAGE`,会接受页码和每页大小作为参数,返回指定范围的记录。它通常会结合使用`ROWNUM`伪列或者Oracle 12c引入的`FETCH NEXT`子句来实现分页。 在实现这些存储过程时,我们...

    asp.net使用oracle分页存储过程查询数据

    功能说明 写好oracle的连接字符串和查询语句,调用程序中的方法可以很方便的实现分页功能。该方法中,将参数连接字符串,查询的sql语句,... 效率不是很高,如有高人写出很厉害的分页存储过程,希望您与大家分享。

    Oracle数据库通用的分页存储过程

    以下是一个简单的分页存储过程示例: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_page_size IN NUMBER, p_current_page IN NUMBER, p_table_name IN VARCHAR2, p_column_list IN VARCHAR2, p_...

    oracle查询分页条件通用存储过程

    oracle数据库的查询分页加条件和排序的通用型存储过程,通过将表名以参数的形式传入到存储过程中做到多表通用,也可以是多表关联的sql语句 将其看作一个表也能调用该存储过程,分页只需要传与页数,和每页显示的行数...

    oracle和mssql分页存储过程-均通用

    综上所述,这个"oracle和mssql分页存储过程-均通用"的压缩包文件提供了一个跨平台的解决方案,帮助开发者在Oracle和MSSQL数据库中轻松实现高效的分页查询,同时提高了代码的可维护性和复用性。在实际应用中,应结合...

    Oracle的分页查询语句 Oracle分页的存储过程

    首先,Oracle的分页查询语句通常遵循一个标准格式,如下所示: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A WHERE ROWNUM ) WHERE RN &gt;= 21 ``` 在这个例子中,最内层...

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

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

Global site tag (gtag.js) - Google Analytics