【发布时间】:2011-06-11 02:16:02
【问题描述】:
我在 Oracle 数据库中有一个存储过程。
GET_VENDOR_STATUS_COUNT(DOCUMENT_ID IN NUMBER, NOT_INVITED OUT NUMBER, INVITE_WITHDRAWN OUT NUMBER, ...
其他参数为OUT参数。
在我的 hbm 文件中,我写了以下内容:
<sql-query name="getVendorStatus" callable="true">
<return-scalar column="NOT_INVITED" type="string"/>
<return-scalar column="INVITE_WITHDRAWN" type="string"/>
<return-scalar column="INVITED" type="string"/>
<return-scalar column="DISQUALIFIED" type="string"/>
<return-scalar column="RESPONSE_AWAITED" type="string"/>
<return-scalar column="RESPONSE_IN_PROGRESS" type="string"/>
<return-scalar column="RESPONSE_RECEIVED" type="string"/>
{ call GET_VENDOR_STATUS_COUNT(:DOCUMENT_ID , :NOT_INVITED ,:INVITE_WITHDRAWN ,:INVITED ,:DISQUALIFIED ,:RESPONSE_AWAITED ,:RESPONSE_IN_PROGRESS ,:RESPONSE_RECEIVED ) }
</sql-query>
这是我的 Java 代码:
session.getNamedQuery("getVendorStatus").setParameter("DOCUMENT_ID", "DOCUMENT_ID").setParameter("NOT_INVITED", "NOT_INVITED")
...继续直到所有参数。
我收到以下 SQL 异常:
18:29:33,056 WARN [JDBCExceptionReporter] SQL 错误:1006,SQLState: 72000
18:29:33,056 错误 [JDBCExceptionReporter] ORA-01006:绑定 变量不存在
请让我知道在 Hibernate 中调用存储过程的确切过程是什么?我不想使用 JDBC 可调用语句。
【问题讨论】:
-
参考他们的official doc关于使用存储过程和限制here
标签: java oracle hibernate stored-procedures