1
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、アプリケーションの準備済みステートメントに取り込まれているため、準備ステートメントのルールを維持するために、以下の方法で使用しました。

後 :

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

ここで params は、パラメーターが反復されるリストであり、実行中に準備ステートメントの位置パラメーターに配置されます。

しかし、 Invalid data conversion: Parameter instance 50.0/100 is invalid for the requested conversion. のような例外が発生して います。ERRORCODE=-4461、SQLSTATE=42815

Plsは誰でも私を助けることができます. ありがとう

4

2 に答える 2

0

推測する必要がある場合、それは自動変換の問題だと思います。

あなたは次のようなものを持っていました

5 * 50.0 / 100

そしてそれはうまくいきました。

いいえ、持っています

50.0 / 100

そしてそれは失敗します。

最初にすべてのオペランドを整数に変換し、2番目にそれらを浮動小数点に変換したようです。しかし、100 は有効な浮動小数点定数ではありません。したがって、新しい出力を次のように変更します

50.0 / 100.0

また

50 / 100
于 2013-07-30T08:40:07.340 に答える