ITPub博客

首页 > 数据库 > Oracle > 在Hibernate中通过Oracle Function取得单据号码

在Hibernate中通过Oracle Function取得单据号码

Oracle 作者:哇哈哈8147 时间:2014-07-10 10:45:24 0 删除 编辑
今天在使用Hibernate开发项目时,遇到一个Oracle Function的问题.


在项目开发中,所有单据的号码产生都是通过一个Function来产生.在这个Function中有一些DML语法,所以不能使用select fun_...() Into v_ref from dual的方法来取得返回结果.


经查询相关资料,Hibernate要求在执行Procedure和Function时都要返回一个游标,所以变通一下方法,我们增加另外一层Function处理.


新定义一个Function 如下:


Function fun_get_vou_web(....)


RETURN SYS_REFCURSOR


as


  v_vou varchar2(20);


  st_cursor SYS_REFCURSOR; 
BEGIN
  v_vou := fun_get_vou(....);
  
  OPEN st_cursor FOR 
    SELECT v_vou as vouno from dual ; 
    
    RETURN st_cursor;


END;


然后在hbm.xml中配置:


 
   
  { ? = call fun_get_vou_web(.......) } 
 



最后在java中查询name为getNewAppNo的执行结果即可.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29737239/viewspace-1215376/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-07-04

  • 博文量
    21
  • 访问量
    40460