Mi pregunta es muy similar a Getting the return value of a PL/SQL function via Hibernate¿Cómo llamar a una función de Oracle desde Hibernate con un parámetro de retorno?
Tengo una función que hace algunas modificaciones internamente y devuelve un valor.
La idea original era hacer algo como esto:
protected Integer checkXXX(Long id, Long transId)
throws Exception {
final String sql = "SELECT MYSCHEMA.MYFUNC(" + id + ", "
+ transId + ") FROM DUAL";
final BigDecimal nr = (BigDecimal) this.getHibernateTemplate()
.getSessionFactory().getCurrentSession().createSQLQuery(sql)
.uniqueResult();
return nr.intValue();
}
Desafortunadamente esto no funciona con Oracle. ¿Cuál es la forma recomendada de hacer algo como esto?
¿Hay una manera de extraer las variables declaradas dentro de mi estado de cuenta?
¿le importaría dar un ejemplo? Estoy un poco perdido cómo obtener el resultado de la función. ¿Debo usar un parámetro out? – Mauli
He proporcionado un ejemplo anterior. Dependiendo de su función/procedimiento almacenado, puede necesitar usar el otro formulario de invocación dentro de 'prepareCall()' en su lugar - la documentación de CallableStatement describe ambos. – ChssPly76
@ ChssPly76: nunca supe de 'DoWork (..)' mucho mejor que Hibernate de '@ NamedNativeQuery' que requiere la sproc/función para devolver un refcursor como el primer parámetro (el parámetro de salida). –