首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

调用含有Out返回值的Oracle存储过程

2013-03-26 
调用带有Out返回值的Oracle存储过程在EJB 3.0中,传统的调用Oracle带Out返回值的存储过程是不被允许的。在项

调用带有Out返回值的Oracle存储过程
在EJB 3.0中,传统的调用Oracle带Out返回值的存储过程是不被允许的。在项目中计算业务遇到了需要调用以上形式的存储过程,经过苦恼-纠结-痛苦直至变通。通过EntityManager获取到Hibernate的Session,再通过Session获取到Connection然后进行余下操作。

@Overridepublic Map executeToCollectPersonnel(Long formId, Long periodId,String areaCode) {Map<String, String> result = new HashMap<String, String>();Session session = (Session) this.em.getDelegate();Connection conn = session.connection();try {CallableStatement call = conn.prepareCall("{CALL COLLECT_PERSONNEL(?,?,?,?)}");call.setLong(1, formId);call.setLong(2, periodId);call.setString(3, areaCode);call.registerOutParameter(4, oracle.jdbc.OracleTypes.VARCHAR);call.execute();String str = call.getString(4);for(String temp : str.split(",")){result.put(temp.split("#")[1], temp.split("#")[0]);}} catch (Exception e) {e.printStackTrace();}return result;}

我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

热点排行