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

高手看来都忙着,怎么没人回答... 高手看来都忙着,怎么没人回答 展开
 我来答
liuefly
2009-11-03 · TA获得超过225个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:140万
展开全部
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()){......}

注意:游标类型需要你在连接未关闭之前进行本地持久化,不然连接关闭了就无法解析了哦^-^,如果还不懂可以联系我!
盛世丶song
2009-11-01 · 超过24用户采纳过TA的回答
知道答主
回答量:122
采纳率:0%
帮助的人:78.7万
展开全部
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 语句试一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式