使用jdbc调用oracle存储过程(返回cursor)的错误及解决方法- -

本文介绍了在使用JDBC调用Oracle存储过程时遇到的'无效的列类型'错误,并提供了解决方案。通过将注册输出参数的类型改为`OracleTypes.CURSOR`,并使用`OracleCallableStatement`来获取ResultSet,成功解决问题。
摘要由CSDN通过智能技术生成

copyright (c) written by bigfou on 200504

--接上回书说:
 
2.使用Jdbc调用存储过程
 2.1 一个问题:
  使用下面的代码访问oracle的存储过程(代码如上)
  Class.forName("oracle.jdbc.driver.OracleDriver");
  conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oraDB","bigfou","...");
  conn.setAutoCommit(false);
  CallableStatement cstat = conn.prepareCall("{ ? = call bigfou.DemoReturnCursor(?) }");
  cstat.registerOutParameter(1,Types.OTHER);  
  cstat.setInt(2,1);
  
  //cstat.setObject(2,rs);
  cstat.execute();
  out.println(cstat.getObject(1));
  
  报错:java.sql.SQLException: 无效的列类型
  why???{xp + jdk142 + oracle817 + tomcat50}
  
  
 2.2 解决!!!
    
  {不是jdbc驱动版本的问题,看下面的java代码你就明白了:).好辛苦啊,
   尝试下载了N个版本的jdbc驱动都不行,
  在google上搜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值