0

この間違いが発生した理由を知りたいです: java.lang.Exception: Parameter index out of range (2 > number of parameters, which is 1)。

はい、PreparedStatement を使用します

 SQL="SELECT pcsv("+servidor_virtual_nuestro+","+nivel_cuenta_receptora+","+codigo_sku[id_componente]+","+t_precio[tipo_precio]+",0) as p_unitario FROM servidores_virtuales t1"+
 "WHERE t1.id_servidor_virtual= ? ";


PreparedStatement pstm100 = this.conexion.prepareStatement(SQL);

pstm100.setInt(1, servidor_virtual_nuestro);

ResultSet rs66 =  pstm100.executeQuery();

pcsv は私が作成した手順なので、なぜこの間違いを犯したのかわかりません。助けてもらえますか? 本当にありがとう

4

2 に答える 2

3

例外がスローされる原因はわかりませんが、不適切な SQL を作成しているという事実の副作用である可能性があります。SQL 文字列には、 と の間にスペースが必要t1ですWHERE

または、一部の変数に余分な疑問符が含まれている可能性があります。stdoutSQL 文字列をログに出力するか、実行する前に試してください。

于 2012-10-31T17:49:15.947 に答える