使用StoredProcedureQuery调用Oracle函数

时间:2014-12-29 12:56:40

标签: java oracle hibernate function jpa-2.1

基于Callable statement support和许多其他文档javax.persistence.StoredProcedureQuery在jpa 2.1中提供

  

标准化支持处理JDBC CallableStatements(存储过程和函数调用)

但是当尝试使用StoredProcedureQuery实例调用oracle函数时,结果总是

PLS-00221: 'function_name' is not a procedure or is undefined

此代码是我如何使用它:

StoredProcedureQuery query = em.createStoredProcedureQuery("function_name");

query.registerStoredProcedureParameter("param1", String.class, ParameterMode.IN);
query.registerStoredProcedureParameter("param2", String.class, ParameterMode.IN);
query.registerStoredProcedureParameter("param3", String.class, ParameterMode.OUT);
query.setParameter("param1", "will");
query.setParameter("param2", "smith");
query.execute();
Object param3 = query.getOutputParameterValue("param3");

我的功能声明是这样的:

function "function_name"(
      param1 in varchar2, param2 in varchar2, param3 out varchar2
   ) return number  is

所以它有什么问题。

0 个答案:

没有答案