oracle 存储过程返回结果集怎么实现?用java如何调用这个存储过程?比如表scott下的emp表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 存储过程返回结果集怎么实现?用java如何调用这个存储过程?比如表scott下的emp表相关的知识,希望对你有一定的参考价值。

高手看来都忙着,怎么没人回答

1:首先你需要创建一个包,并定义你返回的游标的类型、存储过程

create or replace package TEST_PKG is

type cur_emp is REF CURSOR;

procedure test_proc (emps out cur_emp);

end TEST_PKG;

2:然后你再创建包体

create or replace package body TEST_PKG is

procedure test_proc (emps out cur_emp)
as
begin
open emps for select * from emp;
end test_proc;
end TEST_PKG ;

3,通过JAVA调用

cstmt = conn.prepareCall("call TEST_PKG .test_proc (?)");
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.execute();

//获得结果集
rs = (ResultSet)cstmt.getObject(4);
while(rs.next())......

注意:游标类型需要你在连接未关闭之前进行本地持久化,不然连接关闭了就无法解析了哦^-^,如果还不懂可以联系我!
参考技术A 1.在pl/sql 里面有个类型是 SYS_CURSOR 这个是动态游标 用这个类型就可以

create or replace procedure a(outresult out sys_cursor)is
begin
open outresult for select * from scott.emp;
end a;

2.这个我也没用过 你把java连接数据库用的sql 语句换成pl/sql 语句试一下吧

以上是关于oracle 存储过程返回结果集怎么实现?用java如何调用这个存储过程?比如表scott下的emp表的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 存储过程怎么返回临时表结果集

如何php调用oracle存储过程返回的是一个结果集,该怎么从php页面中吧数据循环输出呀

oracle 存储过程执行动态SQL 返回结果给游标,外部程序获得dataset结果集。

oracle存储过程 中把临时表数据 返回结果集

如何oracle function 返回结果集

JAVA获取ORACLE存储过程返回结果集的问题