韩顺平的oracle中编带有返回值的存储过程为什么会错???

小村长 2012-05-13 03:56:56
eclipse中显示是下面这行代码错了,并在oracle下面有红线。。。 cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);


import java.sql.*;
public class testorc{
public static void main(String[] args){

try{
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.得到连接
Connection ct = DriverManager.getConnection("jdbc:oracle:thin@127.0.0.1:1521:MYORA1","scott","m123");

//看看如何调用有返回值的过程
//3.创建CallableStatement
CallableStatement cs = ct.prepareCall("{call proc4(?,?)}");

//4.给第?赋值
cs.setInt(1,10);
//给第二个?赋值
cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);

//5.执行
cs.execute();
//得到结果集
ResultSet rs=(ResultSet)cs.getObject(2);
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
} catch(Exception e){
e.printStackTrace();
} finally{
//6.关闭各个打开的资源

}
}
}
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小村长 2012-05-14
  • 打赏
  • 举报
回复
如果是游标的话 -》 cs.registerOutParameter(6,oracle.jdbc.OracleTypes.CURSOR);
会有错啊,elcipse中会在oracle下面会条红线。。
古布 2012-05-14
  • 打赏
  • 举报
回复
1.第6个参数是游标的话,如下:
cs.registerOutParameter(6,Types.CURSOR);
==>

cs.registerOutParameter(6,oracle.jdbc.OracleTypes.CURSOR);
2.第6个参数是字符串的话,如下:
cs.registerOutParameter(6,Types.CURSOR);
==>

cs.registerOutParameter(2,Types.VARCHAR);
小村长 2012-05-13
  • 打赏
  • 举报
回复
但当时游标时还是有错??cs.registerOutParameter(6,Types.CURSOR);
古布 2012-05-13
  • 打赏
  • 举报
回复
LZ要用用java.sql.Types;
古布 2012-05-13
  • 打赏
  • 举报
回复
cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);
==>
cs.registerOutParameter(2,Types.VARCHAR);

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧