gpt4 book ai didi

java - 我怎样才能在Hibernate中调用这种函数呢?

转载 作者:行者123 更新时间:2023-12-01 12:31:09 24 4
gpt4 key购买 nike

嗯,我有一个具有下一个结构的 pl/sql 函数:

function  Proc(SessionID SomeConst.TSessionID default null) return sys_refcursor is
rc sys_refcursor

我没有任何 pl/sql 的经验,但现在我必须以某种方式调用它。我知道这种程序:

procedure LogOn(UserName in varchar2, Password in varchar2, SessionID out varchar2)

必须这样调用:

CallableStatement callableStatement = sessionFactory
.getCurrentSession().connection()
.prepareCall("call PREQUEST.LOGON(?,?,?)");
callableStatement.setString(1, userName);
callableStatement.setString(2, password);
callableStatement.registerOutParameter(3, OracleTypes.VARCHAR);
callableStatement.execute();
return callableStatement.getString(3);

但是Proc没有out参数。做什么?

更新:

System.out.println(sessionFactory
.getCurrentSession()
.createSQLQuery(
"select Proc(:sessionId) from dual")
.setString("sessionId", sessionId).list().size());

我尝试了这个,但控制台说:

org.hibernate.MappingException: No Dialect mapping for JDBC type: -10

最佳答案

Query query=session.createSQLQuery("select Proc('"+param+"') from dual");
List<MappedBean> result=query.list();

由于您的函数返回 sys_refcursor,因此获取一个名为 MappedBean 的 bean,它将保存从函数返回的数据。

关于java - 我怎样才能在Hibernate中调用这种函数呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25907875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com