怎样使用Java执行带输出参数的存储过程?
首先请问比如我有一个存储过程有一个返回值,存储过程的字符串是不是应该写成"{?=call×××(?)}",然后再执行前使用registerOutParameter方法注册...
首先请问比如我有一个存储过程有一个返回值,存储过程的字符串是不是应该写成"{?=call ×××(?)}",然后再执行前使用registerOutParameter方法注册一下,是不是第一个问号就是输出参数?可是我的总是报异常。
异常信息:The requested data is not available.
能不能给我写一个执行带输出参数存储过程的例子,不胜感激! 展开
异常信息:The requested data is not available.
能不能给我写一个执行带输出参数存储过程的例子,不胜感激! 展开
2个回答
展开全部
这个是一个执行游标的存储过程,返回一个游标结果集
前面的数据库连接我就不写了
String sql="{call course(?,?)}";
创建连接,
CallableStatement call=conn.prepareCall(sql);
设置in参数
call.setString(1,"dd");
注册参数类型
call.registerOutParameter(2,OracleTypes.CURSOR);
call.executeUpdate();
取得游标结果集
Object ob1=call.getObject(2);
循环遍历
ResultSet st=(ResultSet)ob1;
while(st.next()){
String s1=st.getString(1);
String s2=st.getString(2);
}
前面的数据库连接我就不写了
String sql="{call course(?,?)}";
创建连接,
CallableStatement call=conn.prepareCall(sql);
设置in参数
call.setString(1,"dd");
注册参数类型
call.registerOutParameter(2,OracleTypes.CURSOR);
call.executeUpdate();
取得游标结果集
Object ob1=call.getObject(2);
循环遍历
ResultSet st=(ResultSet)ob1;
while(st.next()){
String s1=st.getString(1);
String s2=st.getString(2);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询