gpt4 book ai didi

java - 获取存储过程的小数输出参数时的 JDBC 异常

转载 作者:行者123 更新时间:2023-11-29 05:56:05 25 4
gpt4 key购买 nike

我正在尝试从 MYSQL 过程中获取参数。我的过程:

CREATE PROCEDURE proc(someIn INT UNSIGNED, 
anotherIn INT UNSIGNED,
OUT x DECIMAL(10,7),
OUT y DECIMAL(10,7))

我的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();
}

我在调用 rs.next() 时遇到错误:

java.sql.SQLException: ResultSet is from UPDATE. No Data.

如果我手动调用具有相同参数的过程,我会得到结果数据。我尝试将 decimal 更改为 double,但这没有任何效果。

最佳答案

调用过程的正确方法是这样的:

cs.execute();
double x = cs.getBigDecimal(3).doubleValue();
double y = cs.getBigDecimal(4).doubleValue();

关于java - 获取存储过程的小数输出参数时的 JDBC 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12074775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com