另外我用jdbc接连oracle,好象上面的异常是不抛出了
但还是有点问题
用下面的测试代码Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbcracle:thin:@localhost:1521rcl",
"scott", "tiger");
String sql = "{?=call PckgStudSltCourse.addStudPreSltCourse(?,?,?,?)}";
ResultSet rs = null;
CallableStatement cs = con.prepareCall(sql);
cs.registerOutParameter(1,java.sql.Types.INTEGER);
String [] courseIDs = {"12","34","56"};
int count = 0;
cs.setString(2,years);
cs.setString(3,termID);
cs.setString(4,studentID);
oracle.sql.ArrayDescriptor descriptor = 
      oracle.sql.ArrayDescriptor.createDescriptor("TYPEVARCHARARRAY",con);
oracle.sql.ARRAY array = new oracle.sql.ARRAY(descriptor,con,courseIDs); //这句抛出异常
((oracle.jdbc.OracleCallableStatement)cs).setArray(5,array);另: TYPEVARCHARARRAY 是这样定义的
create or replace type TYPEVARCHARARRAY as table of varchar2(20);
这和characterset有何关系啊
下面是抛出的异常内容java.sql.SQLException: Non supported character set: oracle-character-set-852
at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:171)
at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:135)
at oracle.sql.CHAR.<init>(CHAR.java:159)
at oracle.sql.CHAR.<init>(CHAR.java:183)
at oracle.jdbc.oracore.OracleTypeCHAR.toDatum(OracleTypeCHAR.java:162)
at oracle.jdbc.oracore.OracleType.toDatumArray(OracleType.java:166)
at oracle.jdbc.oracore.OracleTypeCHAR.toDatumArray(OracleTypeCHAR.java:208)
at oracle.sql.ArrayDescriptor.toOracleArray(ArrayDescriptor.java:1517)
at oracle.sql.ARRAY.<init>(ARRAY.java:117)
at com.saintbo.javabean.TestDao.main(TestDao.java:39)