[英]How to call an Oracle PL-SQL procedure which has a custom defined complex Object type as input parameter from Java
[英]call pl/sql procedure in oracle from Hibernate with a return parameter
我有一个PL / SQL函数,该函数返回两个参数:req_type和req_seq。
这是PL / SQL的代码。
declare
req_type number;
req_seq number;
TEST_PKG.insert_req(001,req_type,req_seq );
dbms_output.put_line('req_type='||req_type);
dbms_output.put_line('req_seq='||req_seq);
end;
我需要从休眠中调用此函数。
我没有找到从休眠状态进行这项工作的确切方法
我试过使用此代码:
public EmpEntity insertReq(String numEmp) {
String query = " call TEST_PKG.insert_req(" + numEmp + ",req_type,req_seq ) " ;
SQLQuery sqlQuery = this.getSession().createSQLQuery(query);
sqlQuery.executeUpdate();
sqlQuery.setResultTransformer(Transformers.aliasToBean(
EmpEntity.class));
List<EmpEntity> list = sqlQuery.list();
EmpEntity empEntity=list.get(0);
empEntity.setRequestType(.....);
empEntity.setRequestSec(....);
return empEntity;
}
您可以尝试以下方法。 在这里,我们在执行之前设置参数。
StoredProcedureQuery query = entityManager
.createStoredProcedureQuery("proc_name")
.registerStoredProcedureParameter(1, Long.class,
ParameterMode.IN)
.registerStoredProcedureParameter(2, Long.class,
ParameterMode.OUT);
query.execute();
Long res = (Long) query.getOutputParameterValue(2);
您可以替换您可以在这里找到StoredProcedureQuery的文档https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/StoredProcedureQuery.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.