Jdbc 在准备好的语句中遇到意外的空指针

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

我在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.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();
...