java调用oracle存储过程,改存储过程的输出参数类型为二维数组,请问如何在java中获得该二维数组?
1个回答
展开全部
CallableStatement cs = conn.prepareCall("{?=call fun_get_name()}");//fun_get_name就是oracle的存储过程名
//注册输出参数,import oracle.jdbc.driver.OracleTypes;
cs.registerOutParameter(1,OracleTypes.ARRAY,"ARRAY_OF_NAME");
//执行
cs.execute();
Array outputArray=cs.getArray(1);
String [] str=(String [])outputArray.getArray();
然后就应该可以了。。祝你顺利解决
//注册输出参数,import oracle.jdbc.driver.OracleTypes;
cs.registerOutParameter(1,OracleTypes.ARRAY,"ARRAY_OF_NAME");
//执行
cs.execute();
Array outputArray=cs.getArray(1);
String [] str=(String [])outputArray.getArray();
然后就应该可以了。。祝你顺利解决
追问
楼上说的是一维数组的情况,但是我的输出参数是二维数组的,定义如下:
trade_history_dts OUT tradehistorydtsarray ,
create or replace TYPE tradehistorydtsarray AS VARRAY(300) OF mytimestamp;
create or replace TYPE mytimestamp AS VARRAY(300) OF TIMESTAMP(6);
在java中我试图这样取出:trade_history_dts = (Timestamp[][])trade_history_dts_arr.getArray();
但是会报错,请指教!
追答
什么错。。发过来
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询