簡體   English   中英

獲取存儲過程的十進制輸出參數時的JDBC異常

[英]JDBC exception at getting decimal out parameter of stored procedure

我正在嘗試從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來自UPDATE。 沒有數據。

如果我手動調用具有相同參數的過程,我會得到結果數據。 我試圖將十進制更改為double,但這沒有任何效果。

調用該過程的正確方法是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM