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

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在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- 王朝網路 版權所有 導航