oracle 返回一条记录时,java端怎么取得?

--数据库端的包体createorreplacepackagebodypkg_studentisfunctionfun_student_allreturnstu_cur_... --数据库端的包体
create or replace package body pkg_student is
function fun_student_all return stu_cur_type
is
stu_cur stu_cur_type;
begin
open stu_cur for select * from student;
return stu_cur;
end;
procedure pro_update_student(student_id_in in student.student_id%type,student_row_out out student%rowtype)
is
begin
update student set student.student_age = student.student_age+10
where student.student_id = student_id_in returning student_age,student_id,student_name into student_row_out;
end;
end pkg_student;

--java端的调用

package com.cctv.oracle;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;

import oracle.jdbc.OracleTypes;

public class OracleTest_3 {

public static void main(String[] args) {
Connection conn = DBUtil.getConnection();
CallableStatement call = null;
try {
call = conn.prepareCall("call pkg_student.pro_update_student(?,?)");
call.setInt(1, 10000);
// ↓ 这行语句该怎么写? 这是接收返回值为游标类型的
call.registerOutParameter(2, OracleTypes.CURSOR);
call.execute();
} catch (SQLException e) {
e.printStackTrace();
}

}

}
展开
 我来答
百度网友bae7667
2012-04-09 · TA获得超过936个赞
知道小有建树答主
回答量:404
采纳率:100%
帮助的人:147万
展开全部
call.execute();
i = call.getString(1);
这样就可以了。。。
当然你代码里一定要写finally,用于做if(call!= null)call.close()

你给的包里方法是做update的吧?select才有结果集,update是返回整数表示成功更新了N行的
wangtao880329
2012-04-10
知道答主
回答量:39
采纳率:0%
帮助的人:15.3万
展开全部
call.execute();
i = call.getString(1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式