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存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
存储过程中通过返回数据集,通过游标方式实现,以及在java中如何接收的整个过程
以下是调用包含游标返回的Oracle存储过程的基本步骤: 1. **连接数据库**: 使用`DriverManager.getConnection()`方法建立与Oracle数据库的连接,确保已将Oracle JDBC驱动添加到项目的类路径中。 2. **创建...
然而,正确地实现和调用这类函数需要对PL/SQL语言有深入的理解,特别是对于游标操作的掌握。通过上述分析,我们可以看到示例代码在实现上存在一定的错误,但其核心思想和框架为理解和实践这一功能提供了良好的起点。
在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...
游标是Oracle数据库中一个重要的概念,它是一种在内存中用于存储SQL查询结果的临时工作...随着Oracle数据库的不断更新和发展,对于初学者和数据库管理员来说,学习和使用游标是数据库管理和编程中必不可少的技能之一。
Oracle存储过程中的“Out”游标是数据库编程中一种常用的技术,主要用于在PL/SQL块中返回结果集到调用者。在这个场景中,我们有三个文件:TESTPACKAGE.txt,CURSOR_TEST2.txt和OracleProcedure.java,分别涉及Oracle...
在`oracle函数.txt`中,你可能会找到关于如何声明、定义和调用函数的详细说明。 2. **Oracle游标**:游标允许我们处理查询结果集中的每一行数据。在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭...
总结起来,ORACLE中的游标提供了强大的数据处理能力,它们能够适应不同的查询需求,允许程序逐行处理数据,同时提供了一套完善的属性来监控和控制游标的状态。无论是显式还是隐式,或者是更动态的REF游标,游标都是...
在这个Java项目中,我们将探讨如何在Oracle数据库中添加、更新数据,并利用游标处理过程,这些都是数据库操作的重要组成部分。 首先,让我们详细了解一下Oracle数据库的“添加”操作。在Oracle中,我们通常使用SQL...
Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步分为隐式游标和显示游标。隐式...
通过编写一个Oracle函数,可以在函数内部执行复杂的查询逻辑,将查询结果封装在一个游标中,然后在报表解释程序中调用这个函数,动态地处理游标返回的数据,以生成所需的报表格式。这种方法既避免了频繁修改数据库...
游标在数据库编程中起着至关重要的作用,尤其是在Oracle和SQL中。它们允许程序员逐行处理查询结果,而不仅仅是一次性获取所有数据。本教程将深入介绍Oracle和SQL中的游标概念,以及如何通过实例来理解和应用它们。 ...
### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果进行逐行处理。游标分为两种主要类型:**隐式游标**和**显示游标**。此外,还可以利用游标进行...
在Java编程中,调用Oracle数据库的存储过程并处理返回的游标是一项常见的任务。Oracle存储过程可以封装复杂的业务逻辑,而游标则用于在结果集上进行迭代,特别是当结果集太大,不适合一次性加载到内存时。下面将详细...
在C#部分代码中,我们首先需要建立一个到ORACLE数据库的连接,然后使用OracleCommand对象调用PACKAGE中的方法和存储过程。在调用f_get函数时,我们需要将输入参数str传递给函数,并将返回值存储在result参数中。在...
ORACLE中的游标.ppt
本示例展示了如何使用 CallabledStatement 来调用 Oracle 存储过程,并实现 IN OUT 参数和游标类型参数的使用。这种方法可以提高应用程序的性能和安全性。同时,游标类型参数的使用可以实现数据的批量处理,提高应用...