Jdbc 在准备好的语句中遇到意外的空指针
我在Informix(11.50.FC8)中有一个存储过程,它返回多个值 以下代码(是更复杂查询的一部分)失败: 异常跟踪是:Jdbc 在准备好的语句中遇到意外的空指针,jdbc,informix,Jdbc,Informix,我在Informix(11.50.FC8)中有一个存储过程,它返回多个值 以下代码(是更复杂查询的一部分)失败: 异常跟踪是: Exception in thread "main" java.sql.SQLException: System error - unexpected null pointer encountered. at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:379) at com.infor
Exception in thread "main" java.sql.SQLException:
System error - unexpected null pointer encountered.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:379)
at com.informix.jdbc.IfxSqli.addException(IfxSqli.java:3109)
at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3419)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2282)
at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2202)
at com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1093)
at com.informix.jdbc.IfxResultSet.executePrepare(IfxResultSet.java:189)
at com.informix.jdbc.IfxPreparedStatement.setupExecutePrepare(IfxPreparedStatement.java:193)
at com.informix.jdbc.IfxPreparedStatement.<init>(IfxPreparedStatement.java:171)
at com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:1964)
at test.Main.main(Main.java:27)
问题:如何指定参数
我尝试将CallableStatement
作为{call my_storaged_procedure(?)}
来准备,但我需要构造一个查询,用不同的参数合并来自同一过程的多个结果,如:
SELECT * FROM TABLE(FUNCTION my_stored_procedure(1))
UNION SELECT * FROM TABLE(FUNCTION my_stored_procedure(2))
您已经向我们展示了一段代码,但没有PreparedStatement参数集 此代码应该如下所示:
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, 1);
ResultSet rs = ps.executeQuery();
...
如果出现问题,请尝试使用最新的JDBC驱动程序并向我们展示其版本。例如,我使用来自
JDBC.4.10.JC2DE.tar
的驱动程序,我将检查驱动程序版本,但请注意,异常是在prepareStatement
引发的,而不是在executeQuery
引发的。
SELECT * FROM TABLE(FUNCTION my_stored_procedure(1))
UNION SELECT * FROM TABLE(FUNCTION my_stored_procedure(2))
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, 1);
ResultSet rs = ps.executeQuery();
...