求救,为什么输出后是乱码?
package com.oracle.li;
import java.sql.*;
import oracle.jdbc.driver.OracleTypes;
public class GetSurnamesArray {
/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
Connection conn=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@localhost:1521:orcl");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
CallableStatement callFunction = conn.prepareCall("{? = call get_all_surnames()}");
callFunction.registerOutParameter(1, OracleTypes.ARRAY,"ARRAY_OF_SURNAME");
callFunction.execute();
Array outputArray = callFunction.getArray(1);
Object[] enames=(Object[])outputArray.getArray();
for(int i=0;i<enames.length;i++)
System.out.println("Ename#"+i+" is "+enames[i]);
callFunction.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(-1);
}finally{
conn.close();
}
}
}
用的表就是Oracle Scott用户下的EMP表,PL/SQL函数已经测试没有问题,可以正常输出,但是当在java里输出的时候enames数组的内容全部变成了???
Ename#0 is ???
Ename#1 is ???
Ename#2 is ???
Ename#3 is ???
Ename#4 is ???
Ename#5 is ???
Ename#6 is ???
Ename#7 is ???
Ename#8 is ???
Ename#9 is ???
Ename#10 is ???
Ename#11 is ???
Ename#12 is ???
Ename#13 is ???
请大家指点下!!
谢谢~~