Based on Callable statement support and many others docs javax.persistence.StoredProcedureQuery is presented in jpa 2.1 to
standardized support for dealing with JDBC CallableStatements (stored procedure and function calls)
but when try to call an oracle function with an instance of StoredProcedureQuery the result always is
PLS-00221: 'function_name' is not a procedure or is undefined
This code is how i use it:
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");
The declaration of my function is like this:
function "function_name"(
param1 in varchar2, param2 in varchar2, param3 out varchar2
) return number is
So what is the matter with it.