`
leifeng2
  • 浏览: 142415 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java调用Oracle集合类型

 
阅读更多

1、构造统计对象

create or replace type TestObj as object
(
  vname varchar2(20), --名称
  item1 number, --统计项目1
  item2 number, --统计项目2
  item3 number, --统计项目3
  item4 number
)

 

 

2、构造包含对象类型的嵌套表

create or replace type TestNestTable as table of TestObj

 

 

3、定义对索引表"造型"后的输出的游标类型

create or replace package out_param is
  type out_cur is ref cursor;
end out_param;

 

 

4、创建嵌套表作为输出参数的存储过程

create or replace procedure testPro2(o_cur out out_param.out_cur) is
  ---- 包含对象的嵌套表变量的声明
  v_objTable TestNestTable := TestNestTable();
begin
  --嵌套表变量的使用
  v_objTable.extend;
  v_objTable(1) := TestObj('张三', 12, 123, 123, 34);
  v_objTable.extend;
  v_objTable(2) := TestObj('李四', 22, 223, 223, 234);
  --对嵌套表进行"造型"返回游标
  open o_cur for
    select * from Table(cast(v_objTable as TestNestTable));
end testPro2;

 

5、Java程序的编写

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import oracle.jdbc.OracleTypes;

public class StuInfo {
	
	public static void main(String [] args){
		Connection conn = null;
		CallableStatement  stmt=null;
		ResultSet  rest=null;
		try {
			//加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//获取连接
			conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "123456"); 	
			
			stmt =(CallableStatement )conn.prepareCall("call testPro2(?)");
			//注册游标对象类型
			stmt.registerOutParameter(1,OracleTypes.CURSOR);
			stmt.execute();
			//返回结果集
			rest=(ResultSet)stmt.getObject(1);
			while(rest.next()){				
				System.out.println(rest.getString(1)+"|#|"+rest.getString(2)+"|#|"+rest.getString(3)+"|#|"+rest.getString(4)+"|#|"+rest.getString(5));				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(rest!=null){	try {rest.close();rest=null;} catch (SQLException e) {e.printStackTrace();}}
			if(stmt!=null){	try {stmt.close();stmt=null;} catch (SQLException e) {e.printStackTrace();}}
			if(conn!=null){	try {conn.close();conn=null;} catch (SQLException e) {e.printStackTrace();}}
		}
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

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

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

    Java调用oracle函数返回oracle类(类似)集合

    3. **Java调用Oracle函数**: 在Java中,你需要使用Oracle的JDBC驱动(ojdbc.jar和nls_charset12.jar)来与Oracle数据库交互。首先,你需要加载Oracle驱动并建立数据库连接。然后,你可以通过`CallableStatement`来...

    Java调用oracle存储过程总结

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

    Oracle教程,java调用oracle

    11. **Java调用存储过程和存储函数**:Java开发者可以使用JDBC(Java Database Connectivity)API来调用Oracle的存储过程和函数,实现数据库操作。CallableStatement接口用于这个目的,允许传递参数并接收返回值。 ...

    java调用Oracle存储过程的代码

    总结,通过Java调用Oracle存储过程,我们需要配置JDBC驱动,建立数据库连接,创建CallableStatement,设置参数,执行存储过程,并处理返回的结果。在这个例子中,我们展示了如何调用一个简单的存储过程并打印返回的...

    Java调用Oracle存储过程的方法

    以上就是使用Java调用Oracle存储过程的方法,包括处理基本类型返回值和游标返回值。在实际开发中,可能还需要处理异常、事务管理等问题,确保代码的健壮性和可维护性。同时,为了提高性能,建议使用连接池管理数据库...

    java调用oracle存储过程实现增删改查

    在Java编程中,调用Oracle数据库的存储...总之,通过Java调用Oracle存储过程,我们可以有效地执行数据库操作,同时利用存储过程带来的性能和安全优势。了解如何正确设置参数、执行和处理结果是成功实现这一目标的关键。

    Oracle集合类型输出参数的PLSQL存储过程及其Java调用.docx

    ### Oracle集合类型输出参数的PL/SQL存储过程及其Java调用 #### 1. 引言 存储过程因其高效执行、事务处理能力以及安全性,在数据库应用程序中被广泛应用。特别是使用Oracle数据库时,PL/SQL(一种专为Oracle设计的...

    Oracle集合类型输出参数的PLSQL存储过程及其Java调用.doc

    Oracle集合类型输出参数的PL/SQL存储过程及Java调用主要涉及如何在Oracle数据库中使用存储过程处理集合数据,并在Java应用中调用这些过程。本文档介绍了一种使用索引表作为输出参数的方法,以及如何在Java中处理返回...

    java调用oracle存储过程

    总结起来,Java调用Oracle存储过程涉及到JDBC、数据库连接管理、CallableStatement的使用以及可能的自定义类型转换。通过合理运用这些技术,开发者可以高效地在Java应用中集成和利用Oracle数据库的功能。

    java调用oracle储存过程

    在Java编程中,调用Oracle数据库的...总的来说,Java调用Oracle存储过程涉及到JDBC的基本用法、CallableStatement接口、参数的设置与获取等技术。掌握这些知识,将使你在处理与Oracle数据库交互的项目中更加游刃有余。

    Java调用带参数的存储过程并返回集合

    以上就是Java调用Oracle带参数存储过程并处理返回集合的基本流程。注意在实际开发中,我们还需要考虑异常处理,资源关闭,以及可能的事务管理等细节。 在处理数组参数时,Oracle提供了PL/SQL TABLE类型的参数,Java...

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

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

    Oracle11集合类型输出参数的PLSQL存储过程及其Java调用.docx

    ..Oracle11集合类型输出参数的PLSQL存储过程及其Java调用.docx

    Oracle11集合类型输出参数的PLSQL存储过程及其Java调用.pdf

    ..Oracle11集合类型输出参数的PLSQL存储过程及其Java调用.pdf

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

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

    Java调用存储过程--传入集合参数

    在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将深入探讨如何在Java中有效地调用存储过程,并向其传递集合参数,主要聚焦于Oracle...

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

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

    Java调用Oracle存储过程的方法研究.pdf

    本文将深入探讨如何在Java中调用Oracle存储过程。 首先,要理解Java与Oracle数据库的连接机制。Java Database Connectivity (JDBC) 是Java平台的标准接口,它允许Java应用程序连接到各种类型的数据库。对于Oracle...

    java中调用oracle

    总结,Java调用Oracle数据库涉及以下几个关键点: 1. 引入Oracle JDBC驱动。 2. 使用`DriverManager.getConnection()`建立连接。 3. 创建`CallableStatement`实例,设置输入参数和注册输出参数。 4. 调用`execute()`...

Global site tag (gtag.js) - Google Analytics