`
yuhang_java
  • 浏览: 9663 次
  • 性别: Icon_minigender_1
  • 来自: 深圳-龙岗
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle Package中返回游标的写法和调用

阅读更多
Oracle Package有哪些作用呢?

简化应用设计、提高应用性能、实现信息隐藏、子程序重载。

下面是package部分代码。

create or replace package FirstPage is

  -- Author  : MECON
  -- Created : 2006-7-20 上午 09:34:44
  -- Purpose : 用来处理首页各个模块的显示情况
 
  -- Public type declarations
  type outlist is REF CURSOR;
 
 
  --高中
  Procedure getSeniorHighSchool(
       maxrow in number,
       minrow in number,
       return_list out outlist
  );

//可以定义其他

end FirstPage;

以上是packages的定义。

下面是package body的定义了

create or replace package body FirstPage is

--高中
  Procedure getSeniorHighSchool(
       maxrow in number,
       minrow in number,
       return_list out outlist
  )as
 
  begin
 
 
     open return_list
    
        for
       
          select * from (select a.*,rownum rnum from (
         
            //业务语句


          ) a where rownum<=maxrow) where rnum >=minrow;
         
   
   
  end;

//抒写其他过程

end FirstPage;

Oracle Package的基本就这写了。其余的看业务的需求了。

下面是jdbc代码的调用。

当然如果采用jdbc直接获得Connection下面的代码是没问题的。

oracle.jdbc.OracleCallableStatement cs = null;
    String sqlStr = "{call firstpage.getSeniorHighSchool(?,?,?)}";
    ResultSet rs = null;
    try{
      cs = (oracle.jdbc.OracleCallableStatement)conn.prepareCall(sqlStr);
      cs.setLong(1,arg[0]);
      cs.setLong(2,arg[1]);

      cs.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR);
      cs.execute();
      rs = cs.getCursor(3);

      while(rs.next()){
               //...........
      }
      rs.close();
      cs.close();
    }catch(Exception e){
      System.out.println("produce error ");
      e.printStackTrace();
    }

但是,如果采用连接池(比如:采用Weblogic或jboss等web服务器自带的连接池) 哈哈,这段代码就会让你头疼了。不信你试试。抛出CastClassException哈哈。

下面是另一种写法,保你没事。这种写法风水好。哈哈

CallableStatement cs = null;
   cs = conn.prepareCall(sql);
   cs.setInt(1,maxrow);
   cs.setInt(2,minrow);
   cs.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR);
   cs.execute();
   rs = (ResultSet)cs.getObject(3);

差别很简单。

可以看看weblogic和jboss实现连接池的代码就知道了。

一路ok了。

看完了的朋友,小弟哪写的不对请你留言。 一路走好!

分享到:
评论

相关推荐

    Java调用oracle存储过程通过游标返回临时表

    本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...

    oracle存储过程返回游标数据集

    存储过程中通过返回数据集,通过游标方式实现,以及在java中如何接收的整个过程

    java调用oracle存储过程(游标)相关

    以下是调用包含游标返回的Oracle存储过程的基本步骤: 1. **连接数据库**: 使用`DriverManager.getConnection()`方法建立与Oracle数据库的连接,确保已将Oracle JDBC驱动添加到项目的类路径中。 2. **创建...

    oracle10g 函数返回游标类型

    然而,正确地实现和调用这类函数需要对PL/SQL语言有深入的理解,特别是对于游标操作的掌握。通过上述分析,我们可以看到示例代码在实现上存在一定的错误,但其核心思想和框架为理解和实践这一功能提供了良好的起点。

    Oracle存储过程、游标、函数的详解

    在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...

    oracle数据库的游标

    游标是Oracle数据库中一个重要的概念,它是一种在内存中用于存储SQL查询结果的临时工作...随着Oracle数据库的不断更新和发展,对于初学者和数据库管理员来说,学习和使用游标是数据库管理和编程中必不可少的技能之一。

    Oracle存储过程out游标

    Oracle存储过程中的“Out”游标是数据库编程中一种常用的技术,主要用于在PL/SQL块中返回结果集到调用者。在这个场景中,我们有三个文件:TESTPACKAGE.txt,CURSOR_TEST2.txt和OracleProcedure.java,分别涉及Oracle...

    oracle函数触发器游标等几个小例子

    在`oracle函数.txt`中,你可能会找到关于如何声明、定义和调用函数的详细说明。 2. **Oracle游标**:游标允许我们处理查询结果集中的每一行数据。在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭...

    ORACLE中的游标汇总

    总结起来,ORACLE中的游标提供了强大的数据处理能力,它们能够适应不同的查询需求,允许程序逐行处理数据,同时提供了一套完善的属性来监控和控制游标的状态。无论是显式还是隐式,或者是更动态的REF游标,游标都是...

    Oracle数据库添加 更新 游标 过程 Java Project

    在这个Java项目中,我们将探讨如何在Oracle数据库中添加、更新数据,并利用游标处理过程,这些都是数据库操作的重要组成部分。 首先,让我们详细了解一下Oracle数据库的“添加”操作。在Oracle中,我们通常使用SQL...

    Oracle存储过程游标详解

    Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步分为隐式游标和显示游标。隐式...

    Oracle函数返回游标的方法及应用.pdf

    通过编写一个Oracle函数,可以在函数内部执行复杂的查询逻辑,将查询结果封装在一个游标中,然后在报表解释程序中调用这个函数,动态地处理游标返回的数据,以生成所需的报表格式。这种方法既避免了频繁修改数据库...

    多个ORACLE 游标+SQL 游标 小例子+帮助文档

    游标在数据库编程中起着至关重要的作用,尤其是在Oracle和SQL中。它们允许程序员逐行处理查询结果,而不仅仅是一次性获取所有数据。本教程将深入介绍Oracle和SQL中的游标概念,以及如何通过实例来理解和应用它们。 ...

    oracle 隐式游标,显示游标,游标循环

    ### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果进行逐行处理。游标分为两种主要类型:**隐式游标**和**显示游标**。此外,还可以利用游标进行...

    JAVA调用ORACLE存储过程游标使用

    在Java编程中,调用Oracle数据库的存储过程并处理返回的游标是一项常见的任务。Oracle存储过程可以封装复杂的业务逻辑,而游标则用于在结果集上进行迭代,特别是当结果集太大,不适合一次性加载到内存时。下面将详细...

    C#中调用ORACLE的PACKAGE里方法和存储过程的应用

    在C#部分代码中,我们首先需要建立一个到ORACLE数据库的连接,然后使用OracleCommand对象调用PACKAGE中的方法和存储过程。在调用f_get函数时,我们需要将输入参数str传递给函数,并将返回值存储在result参数中。在...

    ORACLE中的游标.ppt

    ORACLE中的游标.ppt

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    本示例展示了如何使用 CallabledStatement 来调用 Oracle 存储过程,并实现 IN OUT 参数和游标类型参数的使用。这种方法可以提高应用程序的性能和安全性。同时,游标类型参数的使用可以实现数据的批量处理,提高应用...

Global site tag (gtag.js) - Google Analytics