`
rooi
  • 浏览: 53469 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
  • rooi: int statusCode =  response.getS ...
    RTC
  • rooi: package com.coamctech.bxloan.co ...
    RTC
  • rooi: establishConnectionTimeout
    RTC
  • rooi: http://www.cnblogs.com/admol/ar ...
    RTC
  • rooi: https://github.com/qbektrix/xml ...
    RTC

四、JDBC JAVA调用 oracle存储过程 返回游标

    博客分类:
  • JDBC
 
阅读更多
出自http://blog.csdn.net/zhaoweitco/article/details/5479200


1.创建测试表

create table users(
userid int primary key,
username varchar2(20),
userpwd  varchar2(20)
);

insert into users values(1,'test','test');
insert into users values(2,'test','test');
insert into users values(3,'test','test');
insert into users values(4,'test','test');
insert into users values(5,'test','test');
insert into users values(6,'test','test');
insert into users values(7,'test','test');



2.创建存储过程

创建包

create or replace package pkg_test
as
  type cursor0 is ref cursor;
  procedure get(p_id int,p_rc out cursor0);
end pkg_test;



创建包的内容
create or replace package body pkg_test as
  procedure get(p_id int, p_rc out cursor0) is
  begin
    dbms_output.put_line(p_id);
    open p_rc for
      select userid, username, userpwd from users;
  end get;
end pkg_test;



3.java调用

package com.wei;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

/***
*
* 测试 jdbc 连接 oracle 存储过程 返回游标
*
* @author wei
*
*/
public class Main {

public static void main(String[] args) {
  try {
   DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
   Class.forName("oracle.jdbc.driver.OracleDriver");
   String url = "jdbc:oracle:thin:@127.0.0.1:1521:wei";
   String username = "test";
   String password = "admin";
   Connection conn = DriverManager.getConnection(url, username,
     password);
   String sql = "{call pkg_test.get(?,?)}";
   CallableStatement cstmt = conn.prepareCall(sql);
   cstmt.setInt(1, 1);
   cstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
   cstmt.execute();
   ResultSet rs = (ResultSet) cstmt.getObject(2);
   while (rs.next()) {
    System.out.println(rs.getInt(1) + "/t" + rs.getString(2) + "/t"
      + rs.getString(3));
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
}

}

输出结果:

1 test test
2 test test
3 test test
4 test test
5 test test
6 test test
7 test test
分享到:
评论

相关推荐

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

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

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

    总之,Java调用Oracle存储过程,尤其是处理游标,需要理解JDBC的使用、Oracle特定的类型以及存储过程的参数传递方式。通过合理的编程实践,我们可以高效地在Java应用程序中集成Oracle数据库的复杂操作。

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...

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

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

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    在提供的`ConnUtils2.java`文件中,很可能包含了以上所述的Java数据库操作代码,例如建立JDBC连接、处理CLOB数据类型以及调用Oracle存储过程的方法。分析这个文件可以帮助我们更好地理解实际应用中的实现细节,包括...

    用java调用oracle存储过程总结

    } } catch (SQLException ex1) { } } }}```总结与注意事项调用Oracle存储过程在Java中主要使用`CallableStatement`,通过占位符`?`来代表参数,并使用`setXXX`方法设置IN参数,`registerOutParameter`注册OUT或IN...

    java调用oracle存储过程或者函数

    在Java编程中,调用Oracle数据库的存储过程和函数是常见的任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。以下将详细介绍这个过程,包括必要的步骤、使用的类和方法,以及可能遇到的问题和解决...

    Oracle存储过程out游标

    在Java中,我们可以使用JDBC API来调用Oracle存储过程并处理返回的Out游标。`OracleProcedure.java`文件应该包含了这样的代码。以下是一个简单的示例: ```java CallableStatement cs = connection.prepareCall("{ ...

    Java调用oracle存储过程总结

    在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或高效数据操作时。本文将全面总结如何使用Java与Oracle存储过程进行交互。 首先,理解Oracle存储过程的基本概念。存储过程是预编译...

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

    在Java中调用Oracle存储过程,通常需要使用JDBC(Java Database Connectivity)API。以下是一个基本示例: 1. 加载Oracle驱动并建立连接: ```java Class.forName("oracle.jdbc.driver.OracleDriver"); Connection ...

    Java获取Oracle存储过程返回的Cursor

    在Java编程中,有时我们需要调用Oracle数据库的存储过程,特别是当存储过程返回一个游标(Cursor)时,这种情况在处理大量数据或者分页查询时很常见。游标允许我们逐行处理结果集,而无需一次性加载所有数据,这对于...

    java调用Oracle存储过程

    另外,如果存储过程返回游标(结果集),可以通过`ResultSet`接口进行处理。记得检查存储过程的返回值,它通常是一个表示成功与否的状态。 在开发过程中,可以使用诸如IntelliJ IDEA或Eclipse这样的IDE进行调试,...

    java调用oracle存储过程返回结果集,Record,cursor.[参考].pdf

    在Java编程中,调用Oracle数据库的存储过程并获取返回的结果集是一项常见的任务。这个例子展示了如何处理返回Record类型和Cursor类型的存储过程。Record类型在Oracle中是一种自定义的数据结构,可以用来模拟类似...

    java调用oracle存储过程

    在Java编程中,调用Oracle数据库的存储过程是一项常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与Oracle数据库进行交互,并调用存储过程。 首先,我们需要理解Oracle存储过程的概念...

    java调用Oracle存储过程的简单例子源码

    总的来说,Java调用Oracle存储过程涉及JDBC的使用、CallableStatement对象的创建和管理,以及对存储过程参数的正确处理。理解并掌握这些知识点,将有助于你更高效地进行Java与Oracle数据库的交互。通过提供的源码...

    springboot整合mybatis调用oracle存储过程

    本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...

    Java调用oracle存储过程输出自定义对象或二维表

    在Java编程中,与Oracle数据库交互是常见的任务之一,而调用Oracle存储过程可以实现复杂的业务逻辑。本文将深入探讨如何在Java中调用Oracle存储过程,并输出自定义对象或二维表,以此提升数据处理效率。 首先,我们...

    java调用oracle存储过程精彩总结..docx

    Java调用Oracle存储过程是数据库操作中常见的任务,特别是在企业级应用开发中。Oracle存储过程是一种在数据库中预编译的SQL和PL/SQL代码集合,可以提高性能、封装复杂逻辑,并提供更好的安全性。以下是对Java调用...

    java调用oracle存储过程并得到结果集

    在Java编程中,调用Oracle数据库的存储过程并获取结果集是一项常见的任务。在这个场景下,我们将使用JDK 1.5版本,MyEclipse集成开发环境,以及Oracle 11g数据库。以下是对这个主题的详细解释: 首先,我们需要确保...

Global site tag (gtag.js) - Google Analytics