Java 使用setObject方法时出现算术溢出或其他算术异常
下面是我试图在Prepared语句中处理的查询。其中,AMOUNTHAND&ReorderPointAmt的数据类型为DecimalJava 使用setObject方法时出现算术溢出或其他算术异常,java,sql,Java,Sql,下面是我试图在Prepared语句中处理的查询。其中,AMOUNTHAND&ReorderPointAmt的数据类型为Decimal Query 1: SELECT AmountOnHand FROM TableA WHERE AmountOnHand <= (ReorderPointAmt*56.0/100); 我可以通过如下更新查询来解决此问题 Query 3: SELECT AmountOnHand FROM TableA WHERE AmountOnHand <= (Re
Query 1: SELECT AmountOnHand FROM TableA WHERE AmountOnHand <= (ReorderPointAmt*56.0/100);
我可以通过如下更新查询来解决此问题
Query 3: SELECT AmountOnHand FROM TableA WHERE AmountOnHand <= (ReorderPointAmt * CAST(? AS DECIMAL));
Query 3:从表A中选择amonthand,其中amonthand使用任何适当的数据类型,如java.sql.PreparedStatement.setString(索引,“字符串值”)
或
setInt()
或setDouble()
能否尝试使用java.sql.PreparedStatement.setDouble
问题是java.sql.PreparedStatement.setObject(..)随框架一起提供。我不想编辑它。你确定ReorderPointAmt
是Decimal
?@HamletHakobyan是的,它是十进制的(30,15)。问题是java.sql.PreparedStatement.setObject(..)随框架而来。我不想编辑那个。
Arithmetic overflow or other arithmetic exception occurred.. SQLCODE=-802, SQLSTATE=22003, DRIVER=4.15.82.
Query 3: SELECT AmountOnHand FROM TableA WHERE AmountOnHand <= (ReorderPointAmt * CAST(? AS DECIMAL));