java 调用存储过程 传入和返回全部是自定义数组
2011-03-29 17:18
429 查看
String result=""; Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.19.133:1521:gbk10g", "wzh", "wzh"); long start = System.currentTimeMillis(); con.setAutoCommit(false); CallableStatement cstmt = con.prepareCall("{ ? = call getRowMd5(?) }"); //设置返回的数组类型 cstmt.registerOutParameter(1,OracleTypes.ARRAY,"TABLE_DM"); //开始设置传入数组 List<String> list=new ArrayList<String>(); for(int i=1;i<=1000;i++){ list.add(i+""); } ArrayDescriptor arrayDesc = ArrayDescriptor.createDescriptor("EMPARRAY", con); ARRAY array = new ARRAY(arrayDesc, con, list.toArray()); cstmt.setArray(2, array); //结束设置传入数组 cstmt.execute(); con.commit(); //开始处理传入数组 Array aa = cstmt.getArray(1); Object[] obj = (Object[]) aa.getArray(); for (int i = 0; i < obj.length; i++) { STRUCT struct = (STRUCT) obj[i]; Datum[] dt = struct.getOracleAttributes(); for (int n = 0; n < dt.length; n++) { System.out.print(dt +" "); } System.out.println(); } //结束处理传入数组 cstmt.close(); con.close(); long end = System.currentTimeMillis(); System.out.println(end-start); return result;
相关文章推荐
- java 调用存储过程 传入数组
- Spring 框架下,用数组作为参数 传入到 存储过程,或存储过程返回动态数组到java程序 ,BLOB等大对象类似
- Java调用存储过程(返回:简单类型、自定义对象、列表数组)
- Java中传入和取得oracle10g存储过程返回的数组对象(多维数组)
- 利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法
- Flex通过RemoteObject调用java实例:flex传入参数以及接收java返回结果
- java oracle存储过程/函数(1):字符串数组、int数组传入存储过程
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- Java调用存储过程返回数组
- Java调用C代码时传入以及返回基本数据类型
- Java中传入数组调用oracle存储过程
- java 调用存储过程返回多个结果集
- Java调用C语言动态库(JNA方式):回调函数、结构体数组传参、结构体数组返回
- Java中调用参数是数组的存储过程
- java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)
- java调用oracle含输入和输出数组的存储过程
- java通过prepareCall调用oracle返回游标的存储过程
- Java 调用存储过程 返回结果集
- PPAS上以自定义类型数组为入参的函数及调用加java调用
- java 调用oracle存储过程传入 数组参数 不用纯jdbc连接