`
wangronaldo
  • 浏览: 99606 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

通用存储过程

阅读更多
--程序包-规范(通用存储过程)
create or replace package pagePack
as
   type pageCursorType is ref cursor;--游标类型
   procedure procPage(
     tableName varchar2,--查询的表名
     showField varchar2,--查询的字段,T.*表示所有
     whereText varchar2,--查询的条件,不要where
     orderText varchar2,--排序的字段,不要order by
     pageIndex integer,--显示的页码
     pageSize integer,--每页显示的记录数
     pageCursor out pageCursorType,--返回的游标
     counter out integer--返回的记录总数
     );
end;
--程序包-主体
create or replace package body pagePack
as
   procedure procPage(
     tableName varchar2,--查询的表名
     showField varchar2,--查询的字段,T.*表示所有
     whereText varchar2,--查询的条件,不要where
     orderText varchar2,--排序的字段,不要order by
     pageIndex integer,--显示的页码
     pageSize integer,--每页显示的记录数
     pageCursor out pageCursorType,--返回的游标
     counter out integer--返回的记录总数
     )
   as
      sqlstr varchar2(400);
      wText varchar2(100);
      oText varchar2(100);
   begin
      if whereText is not null then
         wText:=' where '||whereText;
      end if;
      if orderText is not null then
         oText:=' order by '||orderText;
      end if;
      sqlstr:='select * from 
      (
      select rownum rn, '||showField||' from
      (select * from '||tableName||wText||oText ||' ) T
      where rownum<=:1
      )
      where rn>:2';
      dbms_output.put_line(sqlstr);
      open pageCursor for sqlstr using pageSize*pageIndex,pageSize*(pageIndex-1);
      
      sqlstr:='select count(*) from '||tableName||wText||oText;
      dbms_output.put_line(sqlstr);
      execute immediate sqlstr into counter;
   end;
end;



java中调用
                Class.forName("oracle.jdbc.driver.OracleDriver");
		Connection conn = DriverManager.getConnection(
				"jdbc:oracle:thin:@localhost:1521:orcl", "scott", "ronaldo");
		String callsql = "{call pagePack.procPage(?,?,?,?,?,?,?,?)}";
		OracleCallableStatement ocs = (OracleCallableStatement) conn
				.prepareCall(callsql);
		int i = 1;
		ocs.setString(i++, "product");
		ocs.setString(i++, "pname");
		ocs.setString(i++, null);
		ocs.setString(i++, null);
		ocs.setString(i++, "1");
		ocs.setString(i++, "2");
		ocs.registerOutParameter(7, oracle.jdbc.OracleTypes.CURSOR);
		ocs.registerOutParameter(8, Types.INTEGER);

		ocs.executeUpdate();
		ResultSet rs = ocs.getCursor(7);
		while (rs.next()) {
			System.out.println(rs.getString(2));
		}
		int sum = ocs.getInt(8);
		System.out.println("一共个数是" + sum);
分享到:
评论

相关推荐

    通用存储过程(通用的分页存储过程)

    通用存储过程(通用的分页存储过程) 在实际项目开发中,存储过程是非常常见的,因此掌握存储过程的用法是开发人员必备的实战法宝

    通用存储过程+增删改查

    "通用存储过程+增删改查"的主题涵盖了数据库中最基础且重要的操作:插入(Insert)、删除(Delete)、更新(Update)和查询(Select)。这些操作是数据库应用开发的核心,通过存储过程实现,能提高数据处理的性能,...

    通用存储过程高效分页

    本篇主要介绍如何通过通用存储过程实现高效的分页查询。 首先,理解分页的基本概念。在数据库查询中,分页通常涉及到两个关键参数:`当前页数`(Page Number)和`每页记录数`(Records Per Page)。例如,第一页...

    经典的分页、排序SQL 通用存储过程.rar

    本文将详细解析"经典的分页、排序SQL 通用存储过程"所涉及的知识点,并给出如何实现这样的存储过程。 首先,分页是数据库查询中的一种优化策略,用于限制每次查询返回的结果数量,从而避免一次性加载大量数据导致的...

    mysql 通用存储过程

    mysql 通用存储过程,,下载直接导入mysql工具中即可使用,包含所有通用查询功能,下载资源即可使用

    ASP.NET基于通用存储过程的分页

    本主题将深入探讨如何在ASP.NET中利用通用存储过程实现分页。 首先,理解存储过程的概念是至关重要的。存储过程是在数据库中预编译的SQL语句集合,它能够执行特定的任务,如查询、插入、更新或删除数据。在分页场景...

    Mysql分页通用存储过程

    Mysql分页通用存储过程

    sql列转行以及行转列的通用存储过程

    根据提供的标题、描述、标签及部分内容,本文将详细介绍SQL中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...

    Aaron通用存储过程分页

    ### Aaron通用存储过程分页详解 #### 一、概述 在数据库操作中,分页查询是一种常见的需求,尤其是在处理大量数据时。为了提高查询效率,本文将详细介绍一个名为`Pr_PageList_final`的通用存储过程,它采用了...

    MySQL分页查询通用存储过程的代码总结.doc

    总的来说,这个MySQL分页查询通用存储过程为开发人员提供了一个便捷的工具,用于处理分页查询的复杂逻辑,简化了代码编写。但实际使用时,还需要根据具体的数据库设计和数据量大小进行适当的调整和优化。

    mysql通用存储过程sql脚本

    mysql通用存储过程sql脚本,支持多表,子查询,高级查询 分页

    一个基于C#+ASP.NET实现的通用存储过程自动生成的管理程序代码

    "基于C#+ASP.NET实现的通用存储过程自动生成的管理程序代码" 是一个使用C#编程语言和ASP.NET框架开发的应用程序,它的主要功能是自动化生成存储过程。C#是一种面向对象的编程语言,常用于开发Windows桌面应用、Web...

    sqlserver通用存储过程

    sqlserver通用存储过程,全面好用,你可下载看看代码哦,保证最全面。

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

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

    对大数据通用存储过程分页demo

    一个通用存储过程分页(特别是对大数据很好用),里面包含liq to sql 和sap.net 调用他的实例方法

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

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

    sql Server 通用分页存储过程

    sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程

    通用的增删改查 存储过程

    这些操作对于任何数据库系统来说都是基础且频繁的,因此创建通用的存储过程能够提高开发效率,降低出错可能性,同时提升系统的性能。 标题"通用的增删改查 存储过程"意味着我们将探讨如何设计和使用一系列可复用的...

    从项目中剥离出来的通用存储过程分页源代码

    原项目中使用Oracle存储过程进行分页,前端借助AspNetPager控件进行分页控制,使用简单方便,并可容易地实现绑定控件(如GridView)的自动编号列功能。现将数据库改用SqlServer2000,经测试,能很好地实现分页功能,...

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

    为了优化,可以考虑使用Oracle的ROW_NUMBER()函数配合窗口函数,但这需要在查询中进行调整,可能不再适合作为通用存储过程。 总结来说,Oracle存储过程实现分页查询的关键在于动态构造SQL语句,结合ROWNUM或ROW_...

Global site tag (gtag.js) - Google Analytics