0

私は、Java(春)でORACLEからストアド関数を呼び出すこのメソッドを持っています - エンティティマネージャ+ createNativeQueryを使用して..

(...)
String set_professional = "{? = call
    pk_backoffice.set_professional(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?}";
//32 parameters IN

query = entity.createNativeQuery(set_professional);
(...)

そして、私がそれをテストしようとするたびに、次のように表示されます: Positional parameter does not exist: 31 in query: {? = call (...) しかし、31 番目の位置に何かありますか..それは存在します..

query.setParameter(31, prof.getFax()); // fax

また、以前の例外で1つの原因でパラメーターを開始しました.1ベースであると言われました.getの代わりに文字列とnull値で試しましたが、結果は同じです..クエリについては、? 何度も、だから私はそれが32(パラメータ用)+ 1(リターン - 最初?)を持っていると確信しています...

誰でも助けることができますか?

4

1 に答える 1

2

解決策が見つかりました。すべて置き換えましたか? 変数の場合、最初の変数でもエラーは消えました。

于 2014-04-28T13:46:17.330 に答える