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

来源:互联网 发布:淘宝客佣金是什么 编辑:程序博客网 时间:2024/04/30 04:44

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;  
  /  
  具体参数你自己修改一下应该可以运行

原创粉丝点击