oracle数组在java中填充了空数据

时间:2013-02-21 09:08:09

标签: java oracle weblogic

当我尝试将一个字符串数组抛出到oracle存储过程时:

String arrStr[] ={"val1","val2","val3"};
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("STR_ARRAY", connection );

oracle.sql.ARRAY oracleArray = new oracle.sql.ARRAY(descriptor, connection, arrStr);

oracleArray包含空数据,oracleArray.datumArray = {???,???,???}

3 个答案:

答案 0 :(得分:6)

在我的情况下(参见上面的评论),它是由编码问题引起的,但没有任何异常或调试信息。将orai18n.jar包含在项目库中解决了这个问题......真的很难过,没有例外或者说明如何解决问题

答案 1 :(得分:0)

数小时后我创建了原因,真正的问题是数据库的NLS_CHARACTERSET使用客户端不支持的编码,jdbc支持其他NLS_LANG必须在classpath中添加orai18n.jar。使用此sql查看数据库设置:

  

SELECT * FROM NLS_DATABASE_PARAMETERS

答案 2 :(得分:0)

可能你的STR_ARRAY是这样定义的:

create or replace type STR_ARRAY is table of VARCHAR2(20);

正如Tomas所说,问题在于编码。我的解决方案 - 改为使用NVARCHAR2。

create or replace type STR_ARRAY is table of NVARCHAR2(20);

相关问题