问题如上,由于项目需要,存储过程返回的是个嵌套表,网上看了很多方法都不行JDBC驱动是FOR ORACLE 10G的报出java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1 存储过程,和数据库连接都没有问题,所以把java代码片断贴上来看是否有错
cstmt = cn.prepareCall("{ ?= call ZHANGMY.plsql002(?)}");
cstmt.registerOutParameter(1, OracleTypes.PLSQL_INDEX_TABLE);
//如果是游标 OracleTypes.CURSOR
cstmt.setString(2, "PM");
cstmt.executeUpdate();// 调试这行产生异常
rs = (ResultSet)cstmt.getObject(1);
while (rs.next()){
System.out.println("success");
}
此处第一个问号为返回值就是嵌套表,第二个问号是传入的参数,而且同样的代码如果存储过程的返回值是动态游标就没有问题,希望有经验的或做过相同的问题朋友帮忙回答下,不用考虑数据库或其他代码问题,主要针对这个异常
cstmt = cn.prepareCall("{ ?= call ZHANGMY.plsql002(?)}");
cstmt.registerOutParameter(1, OracleTypes.PLSQL_INDEX_TABLE);
//如果是游标 OracleTypes.CURSOR
cstmt.setString(2, "PM");
cstmt.executeUpdate();// 调试这行产生异常
rs = (ResultSet)cstmt.getObject(1);
while (rs.next()){
System.out.println("success");
}
此处第一个问号为返回值就是嵌套表,第二个问号是传入的参数,而且同样的代码如果存储过程的返回值是动态游标就没有问题,希望有经验的或做过相同的问题朋友帮忙回答下,不用考虑数据库或其他代码问题,主要针对这个异常
解决方案 »
- oracle行转列怎么实现
- Windows7下,如何安装Oracle10.x数据库~
- 跪求高手支招!ORA-01092(客户端报错)与TRC中ORA-00600错误(断电导致)
- 求助啊!如何在触发器里把新增的带有long型列的记录保存到另一个表里?
- linux下ORACLE监听出错?
- 如何只比较date字段的月日组合大小,而不考虑年的成分?
- 请问一下 Oracle ERP 是什么东西? 谁有没有网址,或介绍啊
- 数据表中某字段的值为0,或1。请问:如何实现数据库中值为1的,查询出的结果为0,值为0的,查询变换后得1,用sql语句如何实现,ORACLE有
- 紧急事情!如何在P4的机器上安装ORACLE 8I呀!请快点告诉我呀!重谢!
- 怎样实现ORACLE的“全外连接”查询呢?
- 一个朋友在国外找工作的面试题目,关系生存问题,请各位大侠救一命
- 大量数据计算的问题
这句话改成
cstmt.registerOutParameter(1, OracleTypes.ARRAY,"嵌套表名");rs = (ResultSet)cstmt.getObject(1);
这句话改成
ARRAY returnList = ocstmt.getARRAY(1);然后把ARRAY returnList转化成ArrayList