调用存储过程和返回结果集

来源:互联网 发布:单片机控制mp3播放器 编辑:程序博客网 时间:2024/06/05 19:10
调用存储过程和返回结果集1.定义包:Oracle返回的结果集需要定义一个游标变量,要在包定义--包名为test  create or replace package test is     -- 定义了游标 和类型,用来返回结果集    type resultCursor is ref cursor;    -- 需要执行的存储过程    procedure PCK_PACT_TYPE(res out resultCursor);  end test;  2.实现包里的存储过程,定义包体--包体  create or replace package body test is    -- Function and procedure implementations    --相当于实现包的接口    procedure PCK_PACT_TYPE(res out resultCursor)  is    begin        open res for select *  from crm_pact_type t;      return;    end;  end test;  3.调用上述包@Autowired      private HibernateTemplate hibernateTemplate;      public void procedureTest(){          try          {              //调用包              String sqlStr = "{call test.PCK_PACT_TYPE(?)}";              Session session=SessionFactoryUtils.getSession(hibernateTemplate.getSessionFactory(),true);              Connection conn=session.connection();              CallableStatement cs =conn.prepareCall(sqlStr);              cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);              cs.execute();              ResultSet rs = (ResultSet) cs.getObject(1);              while (rs.next()) {                  //获取数据                  System.out.println(rs.getString("pact_type_id"));                  System.out.println(rs.getString("pact_type_name"));              }              conn.close();          }          catch (Exception e)          {              // TODO Auto-generated catch block              e.printStackTrace();          }      }  
0 0
原创粉丝点击