我在访问过程作为输出参数返回的游标时遇到 java.lang.NullPointerException。
详情如下:
CallableStatement pstmt = conn.prepareCall("{call PKP_UTIL.GET_VALUE(?,?,?)}");
pstmt.setObject(1, parameter1);
pstmt.setObject(2, parameter2);
pstmt.registerOutParameter(3, OracleTypes.CURSOR);
pstmt.executeUpdate(); //in this line all goes wrong
ResultSet rs = (ResultSet)pstmt.getObject(3);
while (rs.next()) {
System.out.println(rs.getString(1) + "\t" + rs.getFloat(2) + "\t" + rs.getDate(3).toString());
}
申请详情如下: - Tomcat 6 上的 Restful WS -甲骨文 11g ((11.2.0.2.0) - JDK 1.7 - JDBC 瘦驱动程序
如果我在桌面应用程序上尝试使用相同的代码,它的效果非常好。
最佳答案
pstmt.executeUpdate(); //in this line all goes wrong
不足为奇。它应该是 execute()。
executeUpdate()
的 Javadoc 特别指出该语句必须是“SQL 数据操作语言 (DML) 语句,例如 INSERT、UPDATE 或删除;或不返回任何内容的 SQL 语句,例如 DDL 语句。”
关于在 JDBC 中获取游标时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504961/