Получение неизвестного типа объекта при попытке установить значение NULL с помощью TYPES.NULL - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь выполнить оператор обновления, используя 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 голосов
/ 04 декабря 2018

Не все базы данных имеют выделенный тип данных NULL, и кажется, что Informix является одним из них.

Для лучшей переносимости используйте фактический тип столбца со значением null.

Например (при условии, что тип столбца VARCHAR, отрегулируйте при необходимости):

updateStmt.setString(j + 1, null);

Или:

updateStmt.setNull(j + 1, Types.VARCHAR);
0 голосов
/ 04 декабря 2018

Не ставьте Types.NULL.Вместо этого используйте тип столбца, в который вы хотите вставить ноль.

...