java调用oracle存储过程,改存储过程的输出参数类型为二维数组,请问如何在java中获得该二维数组?

 我来答
78533664
2011-05-31
知道答主
回答量:40
采纳率:0%
帮助的人:32.3万
展开全部
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();

然后就应该可以了。。祝你顺利解决
追问
楼上说的是一维数组的情况,但是我的输出参数是二维数组的,定义如下:
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();
但是会报错,请指教!
追答
什么错。。发过来
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式