日期:2014-05-20 浏览次数:20971 次
# /*********************************
# *Create proc demo_proc
# @inparam1 int ,
# @inparam2 varchar(20),
# @inparam3 varchar(20),
# @inparam4 varchar(50)
# AS
# insert into test values(@inparam1,@inparam2,@inparam3,@inparam4)
# *存储过程
# *表
# * create table test(
# * [id] int,
# * [name] varchar(20),
# * age varchar(20),
# * address varchar(50)
# * )
# *
# **********************************/
# import java.sql.*;
# /**
# *author:East(张栋芳)
# *date:2008-6-16
# */
# public class StoreTest{
# private static Connection con=null;
# static String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=pubs";
# public Connection getConn(){
# System.out.println("aaaaaaaaaaaa");
# try{
# Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
# con=DriverManager.getConnection(url,"sa","");
# }catch(ClassNotFoundException e){
# e.printStackTrace();
# }catch(SQLException se){
# se.printStackTrace();
# }
# return con;
# }
# public void doStore() throws Exception{
# String strSQL="{call demo_proc(?,?,?,?)}";
# CallableStatement sqlStmt = getConn().prepareCall(strSQL);
# sqlStmt.setInt(1,1);
# sqlStmt.setString(2,"张栋芳");
# sqlStmt.setString(3,"20");
# sqlStmt.setString(4,"湖南永州");
# int i=sqlStmt.executeUpdate();
# System.out.println ("bbbbbbbbbbb");
# }
#
# public static void main(String [] args)throws Exception{
# StoreTest test = new StoreTest();
# test.doStore();
# }
# }
------解决方案--------------------
ArrayDescriptor array2Tab = ArrayDescriptor.createDescriptor("你的嵌套table名",conn);
ARRAY vArray = new ARRAY(array2Tab , conn, arr);//arr是你的java种的数组
------解决方案--------------------
哦,看成In参数了,out参数你registerOutParameter然后getArray不行吗,可以把嵌套表换成VARRAY试一下
------解决方案--------------------
晕死,它返回的是一个“Table”,也就是一个游标呀。
// 注册输出参数应该是个游标
cs.registerOutParameter(2, OracleTypes.CURSOR);
// 接收,返回对象是个ResultSet
ResultSet rs=(ResultSet)cs.getObject(params.length);