type.refcursor 的定义如下 ---------------------------------- create or replace package type as TYPE refcursor is REF CURSOR; end type; =================================== 按照nicholaz提出的方法,调用成功 不过取返回的cursor时用 ResultSet Rs=(ResultSet)cstmt.getObject(ParamIndex); 成功,但不知oracle提供的jdbc驱动里面有很多象oracleConnection oracleCallableStatement 的类有什么有,怎么用,在那可以找到相关的文档?
open ... for string,默认是字符串,open o_Result1 for 'select * from tableName1'; open o_Result2 for 'select * from tableName2';
谢谢楼上几位,现将代码给出如下,希望能和大家交流。 //引用cursor type create or replace package type as TYPE Curtype IS REF CURSOR; end type;create or replace procedure TestMutiResult ( o_result out type.curtype )is begin
open o_result for select user_id from tablename;
end TestMutiResult;import sun.io.*; import oracle.sql.*; import oracle.jdbc.*; import java.sql.*; class DataResult_01{ public static void main (String args []) throws SQLException { String url ,user , pwd; url="jdbc:oracle:thin:@123.132.1.9:1521:database"; user="user"; //login user pwd="pwd"; //login pwd try {
2、使用getResultSet()取出结果集进行操作。
CallableStatement cstmt = con.prepareCall(
"{?=call TestMuliResult(?,?)}"); //有问题,但我不知道该怎样写
cstmt.registerOutParameter(2, java.sql.Types.VARCHAR);
cstmt.setInt(1,java.sql.Types.TINYINT);
cstmt.execute();//出错!
楼上的,帮我改改。
的定义如下
----------------------------------
create or replace package type as
TYPE refcursor is REF CURSOR;
end type;
===================================
按照nicholaz提出的方法,调用成功
不过取返回的cursor时用
ResultSet Rs=(ResultSet)cstmt.getObject(ParamIndex);
成功,但不知oracle提供的jdbc驱动里面有很多象oracleConnection
oracleCallableStatement 的类有什么有,怎么用,在那可以找到相关的文档?
open o_Result2 for 'select * from tableName2';
//引用cursor type
create or replace package type as
TYPE Curtype IS REF CURSOR;
end type;create or replace procedure TestMutiResult
(
o_result out type.curtype
)is
begin
open o_result for select user_id from tablename;
end TestMutiResult;import sun.io.*;
import oracle.sql.*;
import oracle.jdbc.*;
import java.sql.*;
class DataResult_01{ public static void main (String args []) throws SQLException { String url ,user , pwd;
url="jdbc:oracle:thin:@123.132.1.9:1521:database";
user="user"; //login user
pwd="pwd"; //login pwd try {
Class.forName("oracle.jdbc.driver.OracleDriver");}
catch (Exception e) { e.printStackTrace(); } try{
Connection con =DriverManager.getConnection(url,user,pwd);
CallableStatement cstmt = con.prepareCall("{call TestMutiResult(?)}");
cstmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
cstmt.execute();
ResultSet Rs=(ResultSet)cstmt.getObject(1); while(Rs.next()){
System.out.println(Rs.getString(1));
}
}catch (Exception e) { e.printStackTrace(); } }
}
CallableStatement
ResultSet