oracle 存储过程返回结果集怎么实现?用java如何调用这个存储过程?比如...
发布网友
发布时间:2022-05-05 10:42
我来回答
共2个回答
热心网友
时间:2022-04-13 15:19
1:首先你需要创建一个包,并定义你返回的游标的类型、存储过程
create or replace package TEST_PKG is
type cur_emp is REF CURSOR;
procere test_proc (emps out cur_emp);
end TEST_PKG;
2:然后你再创建包体
create or replace package body TEST_PKG is
procere 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()){......}
注意:游标类型需要你在连接未关闭之前进行本地持久化,不然连接关闭了就无法解析了哦^-^,如果还不懂可以联系我!
热心网友
时间:2022-04-13 16:37
1.在pl/sql 里面有个类型是 SYS_CURSOR 这个是动态游标 用这个类型就可以
create or replace procere a(outresult out sys_cursor)is
begin
open outresult for select * from scott.emp;
end a;
2.这个我也没用过 你把java连接数据库用的sql 语句换成pl/sql 语句试一下吧