利用游标返回结果集的的例子(Oracle 存储过程)

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

在sqlplus中建立如下的内容:1、程序包

SQL> create or replace package types 2 as 3 type cursorType is ref cursor; 4 end; 5 /

程序包已创建。

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

函数已创建。

3、过程

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

过程已创建。

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

import java.sql.*; import java.io.*; import Oracle.jdbc.driver.*;

class GetValues { public static void main (String args []) throws SQLException, ClassNotFoundException { String driver_class = "oracle.jdbc.driver.OracleDriver"; String connect_string = "jdbc:oracle:thin:@127.0.0.1:1521:database";

String query = "begin :1 := sp_listEmp; end;"; //此处调用前面建立的函数! Connection conn;

Class.forName(driver_class); conn = DriverManager.getConnection(connect_string, "scott", "tiger");

CallableStatement cstmt = conn.prepareCall(query); cstmt.registerOutParameter(1,OracleTypes.CURSOR); cstmt.execute(); ResultSet rset = (ResultSet)cstmt.getObject(1);

while (rset.next ()) System.out.println( rset.getString (1) ); cstmt.close(); } }

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航