Java调用Oracle存储过程返回结果集
2015-04-16 10:12
423 查看
这里使用包的方式来实现存储过程,首先声明包头,再实现包体,如下:
声明包头:
声明包头:
create or replace package arvin_test_pack as --声明游标类型 type arvin_test_cursor is ref cursor; --声明存储过程 procedure arvin_test_1(vendor_ids in integer,result out arvin_test_cursor); end arvin_test_pack;实现包体:
create or replace package body arvin_test_pack as --实现包头中的存储过程 procedure arvin_test_1(vendor_ids in integer,result out arvin_test_cursor) is begin if vendor_ids<>0 then open result for select * from arvin_test; else open result for select * from arvin_test where vendor_id=vendor_ids; end if; end arvin_test_1; end arvin_test_pack;在Java中调用:
package com.tenghu.iterator.test; 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 CallableTest { public static void main(String[] args) { try { //获取Oracle驱动器 Class.forName("oracle.jdbc.driver.OracleDriver"); //通过DriverManager获取连接对象 Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ERPDEV", "gmdoms", "omsdev"); //调用存储过程 CallableStatement cs=conn.prepareCall("{call arvin_test_pack.arvin_test_1(?,?)}"); //CallableStatement cs=conn.prepareCall("begin arvin_test_pack.arvin_test_1(?,?); end;"); //设置参数 cs.setInt(1, 11029); //注册输出参数类型 cs.registerOutParameter(2, OracleTypes.CURSOR); //执行 cs.execute(); //获取结果集 ResultSet rs=(ResultSet) cs.getObject(2); //遍历结果集 while(rs.next()){ System.out.println(rs.getInt(1)); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { System.out.println(e.getErrorCode()+"\t\t"+e.getLocalizedMessage()); } } }
相关文章推荐
- java调用oracle存储过程,返回结果集
- Java调用Oracle存储过程返回结果集
- Java调用Oracle存储过程返回查询结果集
- java调用oracle存储过程返回多条结果集
- 160307、Java调用Oracle存储过程返回结果集
- Java 调用 Oracle 存储过程返回结果集
- Java调用Linux下的shell命令并将结果以流的形式返回
- C#调用ORACLE存储过程返回结果集
- java调用linux中的shell脚本并返回执行结果
- C#调用ORACLE存储过程返回结果集
- C#调用Oracle存储过程返回多结果集
- 调用Oracle存储过程返回结果集
- Java调用某一js文件中的方法,执行并返回结果
- java 定时调用方法,有结果返回
- C#调用ORACLE存储过程返回结果集
- java调用Oracle存储过程返回二维数组
- java调用存储过程,返回结果集
- pl/sql存储过程返回record类型和集合类型的结果,Java里如何调用呢
- java调用oracle存储过程 返回多个结果集
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程