我在java中创建Oracle的数组时,看到Oracle的数组都是"???", 这是为什么呢
下面是我的代码实现,高手们帮我看看这是为什么?我在Oracle中创建了一个数组类型;
 create or replace type STTRING_ARRAY as table of varchar2(2000);Java中的使用为。
public static void TestArray(Connection conn) {
String[] newURLs = { "abc", "1234" }; oracle.sql.ARRAY array = null;
oracle.sql.ArrayDescriptor desc = null;
try {
desc = oracle.sql.ArrayDescriptor.createDescriptor("STTRING_ARRAY",
conn);
if (desc != null) {
array = new oracle.sql.ARRAY(desc, conn, newURLs); String[] tem = (String[]) array.getArray();
for (String str : tem) {
System.out.println(str);//<<<<这里输出的全是“???”;为什么
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}

解决方案 »

  1.   

    我的数据库字符编码是zhs16GBK,会是这个原因吗?
      

  2.   

    字符集不对,
    把nls_charset12.jar添加到classpath里面去。
      

  3.   

    需要
    orai18n.jar,
    nls_charset12.jar,
    已经本来的ojdbc14.jar
    这三个的,你可能可能是缺少了nls_charset12.jar。
      

  4.   

    nls_charset12.jar, 
    这个包在哪个路径下?我在D:\oracle\product\10.2.0\client_1\jlib路径下找到了orai18n.jar,。但没有找到nls_charset12.jar,
      

  5.   

    哦,yeah.
    Croatia,你太伟大了。问题解决了,谢谢。