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

数据库 Oracle
本文我们主要给出了一个利用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();  

 

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

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

【编辑推荐】

  1. Oracle 10g正则表达式REGEXP_LIKE简介
  2. Oracle 10g监听listener不能启动的解决方案总结
  3. Oracle 10g Shrink Table和Shrink Space使用详解
  4. Oracle 10g利用utlsampl.sql创建scott用户及样本数据
  5. Oracle 10g透明网关访问SQL Server 2000之配置监听
责任编辑:赵鹏 来源: 火魔网
相关推荐

2010-01-08 13:23:38

ibmdwInfoSphere

2011-08-25 09:31:43

JDBC调用Oracl

2009-07-08 17:42:33

JDBC存储过程

2010-04-12 09:26:52

Oracle查询分页

2009-09-17 10:27:55

linq存储过程

2011-08-29 15:52:19

SQL ServerMybatis存储过程

2010-05-07 13:03:01

Oracle通过存储过

2011-08-12 11:22:53

Oracle存储过程Java

2011-05-18 10:07:13

oracle存储

2011-08-23 10:14:09

JDBC更新计数行调用存储过程SQL Server

2010-04-26 14:12:23

Oracle使用游标触

2010-04-30 14:22:43

Oracle通过

2011-08-25 09:17:31

Java调用存储过程返回一行或多行结果集

2010-04-07 14:01:40

Oracle存储过程

2010-03-30 13:19:57

Oracle存储

2010-04-15 18:06:08

Oracle存储过程

2011-08-22 10:15:39

数据库存储过程

2010-04-15 17:08:20

Oracle存储过程

2011-08-16 16:59:58

PLSQL分页存储过程Java

2010-10-26 14:40:31

oracle存储过程
点赞
收藏

51CTO技术栈公众号