一尘不染

无效的数据转换:参数实例50.0 / 100对于请求的转换无效。错误代码= -4461,SQLSTATE = 42815

sql

String expression = CHEMICAL_REORDERPOINT + "*" + searchRequest.getReorderPercentage() + "/100)";

前 :

String expression = CHEMICAL_REORDERPOINT + "*" + searchRequest.getReorderPercentage() + "/100)";

searchRequest.getReorderPercentage()提交值后,动态地来自浏览器。让我们为searchRequest.getReorderPercentage() = 50

so String expression = CHEMICAL_REORDERPOINT*50/100;

这是JDBC在我的应用程序的prepared语句中填充的,因此要保持我以以下方式使用的prepare语句规则:

后 :

String expression = CHEMICAL_REORDERPOINT + "*?)"
String str = searchRequest.getReorderPercentage() + "/100";
params.add(str)

这里的params是一个列表,从中可以迭代参数,并在执行语句时将其放置在prepare语句的位置参数中。

但是现在我收到了像 无效数据转换 这样的异常 :参数实例50.0 / 100对于请求的转换无效。 错误代码= -4461,SQLSTATE =
42815

请任何人帮我。谢谢


阅读 337

收藏
2021-05-16

共1个答案

一尘不染

参数化查询字符串应类似于“ whatever is in CHEMICAL_REORDERPOINT * (? / 100)”,并且应使用setDouble()或setFloat()而不是字符串来设置百分比值。现在,您正在尝试告诉DB2将任何内容乘以字符串,这没有多大意义。

2021-05-16