请问如何把java数组传到存储过程里面?

[复制链接]
查看11 | 回复2 | 2011-5-7 01:45:08 | 显示全部楼层 |阅读模式
请各位大侠指教,
顺便问一下,在存储过程中,用什么来表示数组这个数据结构?
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
在oracle创建一个数组
create type intvarry is table of number;
create type strvarry is table of varchar2(20);
在java里
CallableStatement cs = con.prepareCall(sql);
Integer [] intArray = {1,2,3};
Strign [] strArray = {"123","456","avc&quot

;
oracle.sql.ArrayDescriptor desc = oracle.sql.ArrayDescriptor.createDescriptor("INTVARRY",con);
oracle.sql.ARRAY array = new oracle.sql.ARRAY(desc,con,intArray);
cs.setArray(1,array);
...
用数字型我是通过了
但我用字符型数组时出错
说不支持852字符集(在把java字符串数组转成oracle的ARRAY时抛出异常)
但我在oracle里用java写的存储过程时通过,没错的
可以搜索我几些日子的贴子
也没人回答我的问题


回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
在CLASSPATH里加上nls_charset12.jar
再试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行