龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle存储过程利用游标返回结果集的代码示例

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
Oracle存储过程 可以 利用游标返回结果集 ,它的实现方法是本文我们主要要介绍的内容,接下来我们就开始介绍。首先我们在sqlplus中建立如下的内容: 1、程序包 SQL createorreplacepackage

Oracle存储过程可以利用游标返回结果集,它的实现方法是本文我们主要要介绍的内容,接下来我们就开始介绍。首先我们在sqlplus中建立如下的内容:

1、程序包

  1. SQL> create or replace package types  
  2. 2 as  
  3. 3 type cursorType is ref cursor;  
  4. 4 end;  
  5. 5 / 
  6. 程序包已创建

2、函数

  1. SQL> create or replace function sp_ListEmp return types.cursortype  
  2. 2 as  
  3. 3 l_cursor types.cursorType;  
  4. 4 begin  
  5. 5 open l_cursor for select id, title from cf_news order by id;--表的名字  
  6. 6 return l_cursor;  
  7. 7 end;  
  8. 8 /  
  9. 函数已创建。 

3、存储过程

  1. SQL> create or replace procedure getemps( p_cursor in out types.cursorType )  
  2. 2 as  
  3. 3 begin  
  4. 4 open p_cursor for select id, title from cf_news order by id;--表的名字  
  5. 5 end;  
  6. 6 /  
  7. 过程已创建。 

4、建立一个可执行的java控制台程序

  1. import java.sql.*;  
  2. import java.io.*;  
  3. import oracle.jdbc.driver.*;  
  4. class GetValues  
  5. public static void main (String args [])  
  6. throws SQLException, ClassNotFoundException  
  7. {  
  8. String driver_class = "oracle.jdbc.driver.OracleDriver";  
  9. String connect_string = "jdbc:oracle:thin:@127.0.0.1:1521:database";  
  10. String query = "begin :1 := sp_listEmp; end;"; //此处调用前面建立的函数!  
  11. Connection conn;  
  12. Class.forName(driver_class);  
  13. conn = DriverManager.getConnection(connect_string, "scott", "tiger");  
  14. CallableStatement cstmt = conn.prepareCall(query);  
  15. cstmt.registerOutParameter(1,OracleTypes.CURSOR);  
  16. cstmt.execute();  
  17. ResultSet rset = (ResultSet)cstmt.getObject(1);  
  18. while (rset.next ())  
  19. System.out.println( rset.getString (1) );  
  20. cstmt.close();  

将以上的代码在Java编译器中运行,即可实现该功能。

以上就是Oracle存储过程利用游标返回结果集的全部过程,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

精彩图集

赞助商链接