[英]JDBC exception at getting decimal out parameter of stored procedure
I'm trying to get parameter from MYSQL procedure. 我正在尝试从MYSQL程序中获取参数。 My proc:
我的过程:
CREATE PROCEDURE proc(someIn INT UNSIGNED,
anotherIn INT UNSIGNED,
OUT x DECIMAL(10,7),
OUT y DECIMAL(10,7))
My java code: 我的java代码:
CallableStatement cs = conn.prepareCall("{call proc(?, ?,?,?)}");
cs.setLong(1, someLong);
cs.setLong(2, anotherLong);
cs.registerOutParameter(3,Types.DECIMAL,7);
cs.registerOutParameter(4,Types.DECIMAL,7);
rs = cs.executeQuery();
if (rs.next()) {
double x = rs.getBigDecimal(3).doubleValue();
double y = rs.getBigDecimal(4).doubleValue();
}
And I encountered on error at calling rs.next(): 我在调用rs.next()时遇到错误:
java.sql.SQLException: ResultSet is from UPDATE.
java.sql.SQLException:ResultSet来自UPDATE。 No Data.
没有数据。
If I call the procedure with the same parameters manually, I get the result data. 如果我手动调用具有相同参数的过程,我会得到结果数据。 I tried to change decimal to double, but this has no effect.
我试图将十进制更改为double,但这没有任何效果。
The correct way to call the procedure is this: 调用该过程的正确方法是:
cs.execute();
double x = cs.getBigDecimal(3).doubleValue();
double y = cs.getBigDecimal(4).doubleValue();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.