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

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();
  21. }

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

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

网站标题:Oracle存储过程利用游标返回结果集的代码示例
本文网址:http://www.csdahua.cn/qtweb/news49/352499.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网