解决方案 »

  1.   

    首先用你的hibernate session获取conn:Connection   con   =   session.connect(); 然后,看我的博文里的第三章,其实用hibernate和jdbc直接连接是一样的,只不过创建Connection的方式有差别而已:
    Oracle技术_5分钟会用存储过程_存储过程简单实例(包含循环、条件、增改查、参数传入、变量赋值、java调用等)
      

  2.   

    另外,存储过程没有返回值,而是可以定义传出参数,和传入参数定义方式类似。接收传出参数的话可以用SQLQuerySQLQuery sqlQuery= (SQLQuery) session.createSQLQuery("{Call PROCEDURE_TEST(?,?)}");
    sqlQuery.setString(1, "T01");  
    sqlQuery.setString(2, "[email protected]");  
    sqlQuery.executeUpdate();这时,使用sqlQuery.getString(1),就获得了第一个传出参数。
      

  3.   

    至于SQL函数,我建议不要直接使用代码调用,而是在你写SQL时调用,然后用代码执行sql,例如我用hibernate直接执行这条sql(其中用了系统自带的函数max(xx),当然这里可以用你自己定义的):select max(t.c_name) from TEST_BLOB t