我在访问过程作为out参数返回的游标时收到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 - Oracle 11g((11.2.0.2.0) - JDK 1.7 - JDBC Thin驱动程序
如果我在桌面应用程序上尝试相同的代码,它就像一个魅力。
答案 0 :(得分:0)
pstmt.executeUpdate(); //在这一行中出错了
不足为奇。它应该是execute().
executeUpdate()
的Javadoc特别声明该语句必须是'SQL数据操作语言(DML)语句,例如INSERT,UPDATE或DELETE;或者不返回任何内容的SQL语句,例如DDL语句。'