java调用oracle返回结果集的存储过程

oracle中procedure是不能有返回值的,要想返回值,就得有输出参数,同样要想返回记录集,可以把游标类型作为输出参数。有一个例子:  
  import   java.sql.*;  
  import   oracle.jdbc.driver.*;  
   
  ...........................  
  try   {  
              DriverManager.registerDriver(new   oracle.jdbc.driver.OracleDriver());  
              Connection   conn   =   DriverManager.getConnection(  
                      "jdbc:oracle:thin:@localhost:1521:orcl",   "system",   "password");  
              CallableStatement   st   =   conn.prepareCall(  
                      "{call   getemps(?)}");  
              st.registerOutParameter(1,OracleTypes.CURSOR);  
              st.execute();  
              ResultSet   r   =   (ResultSet)   st.getObject(1);  
   
              while   (r.next())   {  
                  //todo  
              }  
          }  
          catch   (SQLException   ex)   {  
              ................  
          }  
   
   
   
  create   or   replace   package   types    
  as    
  type   cursorType   is   ref   cursor;    
  end;    
  /    
   
  create   or   replace   procedure   getemps(   p_cursor   in   out   types.cursorType   )  
  as  
  begin  
  open   p_cursor   for   select   ename,   empno   from   emp   order   by   ename;  
  end;  
  /  
  具体参数你自己修改一下应该可以运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值