应用程序传递到oracle存储过程的字符串数组参数得不到值,都是空值。但是number数组没有问题?请问各位兄弟姐妹,有什么解决的办法? 下面是我的代码: /**自定义number数组**/ 
create or replace type array_num is table of number; /**自定义varchar2数组**/ 
create or replace type array_varchar2_50 is table of varchar2(50); /**测试存储过程**/ 
create or replace procedure testArray(resNumber  in array_varchar2_50, 
                                      a_num      in array_num, 
                                      procResult out array_varchar2_50) is 
begin 
  procResult := new array_varchar2_50(); 
  for i in 1 .. resNumber.Count loop 
    procResult.EXTEND; 
    procResult(i) := resNumber(i) || '-' || a_num(i) || '-lucifer' || i; 
  end loop; 
end; /**java调用**/ 
                  OracleConnection conn = null; 
OracleCallableStatement stmt = null; 
String[] param = { "1001", "1002", "1006" }; 
Integer[] num = {1,2,3}; 
stmt = (OracleCallableStatement) con.prepareCall("{call testArray(?,?,?)}"); 
// 类型名必须大写 
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor( 
"ARRAY_VARCHAR2_50", con); 
ArrayDescriptor descriptorNUM = ArrayDescriptor.createDescriptor( 
"ARRAY_NUM", con); 
stmt.setArray(1, new ARRAY(descriptor, con, param)); 
stmt.setArray(2, new ARRAY(descriptorNUM, con, num)); 
stmt.registerOutParameter(3, OracleTypes.ARRAY, "ARRAY_VARCHAR2_50"); 
stmt.execute(); ARRAY array = stmt.getARRAY(3); 
Datum[] data = array.getOracleArray(); 
for (int i = 0; i < data.length; i++) { 
System.out.println(i + " : " + new String(data[i].shareBytes()));