今天刚拿到一套新代码,但是在调用存储过程的时候有点问题,不知道我的环境哪里不行,各位大哥帮忙看看。
1.存储过程有返回结果集,已经在plsql测试过,结果集有返回。
2.java用jdbc调用的时候,设置了传入的参数IN和输出的游标结果集:oStmt.setString(1, sUserID);
oStmt.setString(2, sPrjId);
oStmt.setString(3, sPalType);
oStmt.registerOutParameter(4, oracle.jdbc.OracleTypes.CURSOR);
oStmt.execute();//游标取回值是null。使用executeQuery()游标可以得到。很奇怪。
ResultSet oResultSet = (ResultSet) oStmt.getObject(4); //oResultSet取回null
问题:oStmt.execute()的时候oResultSet取回null。但是代码是现场的,不会有问题,我的环境是不是有问题?大家帮帮忙。谢谢
1.存储过程有返回结果集,已经在plsql测试过,结果集有返回。
2.java用jdbc调用的时候,设置了传入的参数IN和输出的游标结果集:oStmt.setString(1, sUserID);
oStmt.setString(2, sPrjId);
oStmt.setString(3, sPalType);
oStmt.registerOutParameter(4, oracle.jdbc.OracleTypes.CURSOR);
oStmt.execute();//游标取回值是null。使用executeQuery()游标可以得到。很奇怪。
ResultSet oResultSet = (ResultSet) oStmt.getObject(4); //oResultSet取回null
问题:oStmt.execute()的时候oResultSet取回null。但是代码是现场的,不会有问题,我的环境是不是有问题?大家帮帮忙。谢谢
if(oStmt.execute()){
//操作
}
或者是
ResultSet = oStmt.executeQuery();
ResultSet oResultSet = (ResultSet) oStmt.getObject(4); //oResultSet取回null
我问execute()之后,取不到游标的结果集。但是如果我用executeQuery(),然后再去取游标,结果集就有了。
游离态、、持久态、、、我用的存储过程,而且只是select出结果集!
不过我已经找到原因了。嘿嘿。结贴。