`
沙舟狼客
  • 浏览: 158781 次
  • 性别: 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 分页的存储过程

    教你如何在oracle 中创建分页的存储过程

    oracle包用存储过程图分页

    oracle建包,包内有存储过程实现分页,里边包含游标,通过游标实现。

    oracle存储过程实现分页

    通过在oracle数据库端编程实现分页在页面段的显示。首先创建要用的游标包,在创建实现分页的过程

    Oracle存储过程连接并进行分页

    1、利用最佳代码实践PetShop写相应的Oracle连接存储过程的方法(已防注入带参数化) ...3、Oracle数据库如何写存储过程的分页、如何创建程序包并访问 这些可以参考相应的文档、*.SQL文件或作者网站进行访问。

    PL/SQL中编写Oracle数据库分页的存储过程

    此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集。 由于需要返回查询出来的结果集,...

    Oracle 基础知识 -大全- 原创整理.pdf

    1.掌握oracle表的管理(创建/维护) ...16.掌握pl/sql的高级用法(能编写分页过程模块,下订单过程模块..,) 17.会处理oracle常见的例外 18.会编写oracle各种触发器 19.理解视图的概念并能灵活使用视图

    oracle面试题

    掌握Oracle中rowid,rownum的使用,掌握ORACLE分页语句的写法,掌握ORACLE存储过程的创建和使用,

    oracle实用教程-韩顺平

    4.oracle 表的管理(数据类型,表创建删除,数据 CRUD 操作) 5.oracle 表查询(1) 6.oracle 表查询(2) 7.java 操作 oracle 8.oracle 中事务处理 9.oracle 的函数 10.数据库管理,表的逻辑备份与恢复 11.数据字典和...

    oracle使用管理笔记(一些经验的总结)

    14.oracle创建数据库实例 30 15.java操作oracle 31 16.oracle事务处理 34 17.oracle数据完整性 36 18.oracle 序列(sequence) 39 19.oracle 索引 40 20.oracle管理权限和角色 42 21.PL/SQL 47 (1)存储过程简单版本 47...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...

    Oracle数据库、SQL

    1.12一台机器可跑几个数据库,主要受内存大小影响 2 1.13源表和结果集 2 1.14几个简单命令 2 1.15 tarena给jsd1304授权 2 1.16课程中使用的5个表 3 二、 select from语句 5 2.1 select语句功能 5 2.2 select语句基本...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    基于某某平台的数据源迁移oracle -mysql

    一、背景 4 二、环境准备 4 1、软件 4 2、jar包 4 3、web应用 4 三、mysql数据库的安装 4 四、数据库的创建并用客户端软件连接 5 1、创建数据库 5 2、应用 navicat连接mysql 数据库 6 五、某某系统下数据源的转换 7 ...

    Oracle.doc

    Oracle.doc 创建视图 view 创建序列 创建一个游标 创建存储过程 创建表与字段注释 表中约束关系的创建 表关系及字段的操作--对表结构的操作 to_char 与to_date 截取 替代,替换 索引 -多表关系间的经典应用- •分页....

    最新JAVA面试题总结之数据库.docx

    创建存储过程的例子如创建一个简单的 MySQL 存储过程,名为 “pr_add”,有两个 int 类型的输入参数 “a” 和 “b”,返回这两个参数的和。 3. 索引的理解: 索引是对数据库中一对多个列值的排序,帮助数据库高效...

    oracle数据库设计规范.doc

    对于64位的小型系统,Oracle数据库对SGA的管理超过2G的限制,SGA设计在一个 合适的范围内:物理内存的50%—70%,当SGA过大的时候会导致内存分页,影响系统性 能。 交换区设计 当物理内存在2G以下的情况下,交换分区...

    Oracle事例

    14、查询从多少行到多少行的记录(可以用在web开发中的分页显示) select * from ( select rownum row_id,b.* from (select a.* from sys_oper a) b ) where row_id between 15 and 20 15、对公共授予访问权 ...

    VC++应用Oracle数据库进行大数据查询

    摘要:VC/C++源码,数据库应用,Oracle,大数据查询 VC++应用Oracle数据库进行大数据查询,包括存储过程、分页查询,使用注意事项:  1,先创建mytable表:  create table mytable(empno, ename, job, mgr, sal, comm...

    FluentData微型ORM v2.3.0源码2012813

    FluentData是一个微型ORM,可以简单的选择、插入、更新和删除数据库中的数据。它使ADO.NET开发的Power,一个方便简洁的ORM。 它有一个简单的API,很容易入手。 FluentData is a Micro ORM that makes it simple to ...

Global site tag (gtag.js) - Google Analytics