0

我有这个方法可以从 ORACLE 调用存储函数,在 java (spring) 中 - 使用实体管理器 + createNativeQuery ..

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

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

每次我尝试测试它时,它都会显示:位置参数不存在:查询中的 31:{? = call (...) 但是我在 31 位有什么东西吗..它存在..

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

另外,我在之前的异常中以 1 开始参数,它说它是基于 1 的,我尝试使用字符串和空值而不是 get,结果仍然相同。关于查询,我还计算了 ? 很多次,所以我确定它有 32(用于参数)+ 1(返回 - 第一个?)...

任何人都可以帮忙吗?

4

1 回答 1

2

找到了解决办法,我全部换掉了?对于变量,即使是第一个变量,错误也消失了。

于 2014-04-28T13:46:17.330 回答