尝试使用TYPES.NULL设置null时获取未知对象类型

时间:2018-12-04 19:51:48

标签: java jdbc informix

我试图使用JDBC执行更新语句,并且试图设置如下所示的空值。

updateStmt.setNull(j + 1, Types.NULL);

但是无论何时执行该语句,我都会收到以下错误。

java.sql.SQLException: Unknown object type
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:355)
at com.informix.jdbc.IfxValue.createInstanceFromClassName(IfxValue.java:403)
at com.informix.jdbc.IfxValue.makeInstanceFromIfxType(IfxValue.java:635)
at com.informix.jdbc.IfxValue.makeInstanceFromIfxType(IfxValue.java:610)
at com.informix.jdbc.IfxValue.makeInstance(IfxValue.java:390)
at com.informix.jdbc.IfxPreparedStatement.setNull(IfxPreparedStatement.java:396)

我做错了什么?请帮助

2 个答案:

答案 0 :(得分:2)

并非所有数据库都具有专用的NULL数据类型,并且Informix似乎就是其中之一。

为了获得最佳的可移植性,请使用具有null值的列的实际类型。

例如(假设列类型为VARCHAR,请根据需要进行调整):

updateStmt.setString(j + 1, null);

或者:

updateStmt.setNull(j + 1, Types.VARCHAR);

答案 1 :(得分:0)

请勿放置Types.NULL。而是使用要向其中插入null的列的类型。