ITPub博客

首页 > 数据库 > Oracle > java中调用oracle存储过程通过游标返回结果集

java中调用oracle存储过程通过游标返回结果集

Oracle 作者:fjxdyjane 时间:2013-09-27 11:48:28 0 删除 编辑
第一步: 声明包,游标,过程
CREATE OR REPLACE PACKAGE "PACK_ACCT_BJK" AS

  Type refcur is Ref Cursor;
  
  procedure getAcctByOrgByBJK(org_a IN INTEGER,refcursor  OUT osibank.PACK_ACCT_BJK.refcur);
  END PACK_ACCT_BJK;

第二部:定义body
CREATE OR REPLACE PACKAGE BODY "PACK_ACCT_BJK" AS
procedure getAcctByOrgByBJK(
             org_a IN INTEGER,
             refcursor  OUT osibank.PACK_ACCT_BJK.refcur) 
   as
begin
 OPEN REFCURSOR FOR 
   select * from acct where branchorgnbr=org_a;
END getAcctByOrgByBJK;

END PACK_ACCT_BJK;

第三步:java测试程序如下
public static void main(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver";
   String strUrl = "jdbc:oracle:thin:@192.168.1.6:1521:debug";
   Statement stmt = null;
   ResultSet rs = null;
   Connection conn = null;
   CallableStatement cstmt = null;
   long a = 67500202L;
   try {
     Class.forName(driver);
     conn = DriverManager.getConnection(strUrl, "osibank", "osibank");
     CallableStatement proc = null;
     proc = conn.prepareCall("{ call osibank.PACK_ACCT_BJK.getAcctByOrgByBJK(?,?) }");
     proc.setLong(1, a);
     proc.registerOutParameter(2, OracleTypes.CURSOR);
     proc.execute();
     //System.out.println("branchorg:"+proc.getInt(2));
     rs = (ResultSet)proc.getObject(2);

     while(rs.next())
     {
         System.out.println("acctnbr:" + rs.getLong("acctnbr") + " datelastcontact:"+rs.getDate("datelastcontact"));
     }
   }
   catch (SQLException ex2) {
     ex2.printStackTrace();
   }
   catch (Exception ex2) {
     ex2.printStackTrace();
   }
   finally{
     try {
       if(rs != null){
         rs.close();
         if(stmt!=null){
           stmt.close();
         }
         if(conn!=null){
           conn.close();
         }
       }
     }
     catch (SQLException ex1) {
     }
   }

}

<!-- 正文结束 -->

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

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论