t********k 发帖数: 808 | 1 存储过程有一个数组参数
类型是 Table of Varchar2(20)
在Java调用该存储过程时
要用什么数据类型传进来呢?
String [] 不行啊,如
Strign [] strArray = {"12","34","56"};
cs.setObject(1,strArray,java.sql.Types.ARRAY);
这样会抛出异常
那怎么传呢?
谁做过呢?
谢谢 | w*******g 发帖数: 9932 | 2 what exception?
【在 t********k 的大作中提到】 : 存储过程有一个数组参数 : 类型是 Table of Varchar2(20) : 在Java调用该存储过程时 : 要用什么数据类型传进来呢? : String [] 不行啊,如 : Strign [] strArray = {"12","34","56"}; : cs.setObject(1,strArray,java.sql.Types.ARRAY); : 这样会抛出异常 : 那怎么传呢? : 谁做过呢?
| t********k 发帖数: 808 | 3 ClassCastException
【在 w*******g 的大作中提到】 : what exception?
| w*******g 发帖数: 9932 | 4 I guess the problem is with the type of the array elements.
you have an array of string and you want to pass to jdbc that accepts
an array of some other types.
can you find out the types used for the jdbc elements?
【在 t********k 的大作中提到】 : ClassCastException
| t********k 发帖数: 808 | 5 我也是这么认为的
想用java.sql.Array数据类型试试
但怎么把String[]转换成java.sql.Array类型呢?
查了查API
好象没有互转的方法啊
【在 w*******g 的大作中提到】 : I guess the problem is with the type of the array elements. : you have an array of string and you want to pass to jdbc that accepts : an array of some other types. : can you find out the types used for the jdbc elements?
| t********k 发帖数: 808 | 6 另外我用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.setStri
【在 t********k 的大作中提到】 : 存储过程有一个数组参数 : 类型是 Table of Varchar2(20) : 在Java调用该存储过程时 : 要用什么数据类型传进来呢? : String [] 不行啊,如 : Strign [] strArray = {"12","34","56"}; : cs.setObject(1,strArray,java.sql.Types.ARRAY); : 这样会抛出异常 : 那怎么传呢? : 谁做过呢?
|
|