Невозможно вставить ноль в столбец datetimeoffset на SQL сервере, используя Teiid - PullRequest
0 голосов
/ 30 апреля 2020

Я использую Teiid для вставки нулевого значения в столбец datetimeoffset, но PreparedStatement.setNull(index, Types.TIMESTAMP) не вставляет нулевое значение. Я получаю следующую ошибку:

Причина: java. sql .SQLException: Remote com.microsoft.sqlserver.jdb c .SQLServerException: неявное преобразование из типа данных varbinary to datetimeoffset не допускается. Используйте функцию CONVERT для выполнения этого запроса.

в com.microsoft.sqlserver.jdb c .SQLServerException.makeFromDatabaseError (SQLServerException. java: 262)
в com.microsoft.sqlserver.jdb c .SQLServerStatement.getNextResult (SQLServerStatement. java: 1632)
в com.microsoft.sqlserver.jdb c .SQLServerPreparedStatement.doExecutePreparedStatement (SQLServerPreparedSoftment 600) * at. .sqlserver.jdb c .SQLServerPreparedStatement $ PrepStmtExecCmd.doExecute (SQLServerPreparedStatement. java: 522)
в com.microsoft.sqlserver.jdb c .TDSCommand.exffer. 1012 * в com.microsoft.sqlserver.jdb c .SQLServerConnection.executeCommand (SQLServerConnection. java: 3053)
в com.microsoft.sqlserver.jdb c .SQLServerStatement.executeCommand (SQLServerStateState 10 SQL * Server 10). : 247)
в com.microsoft.sqlserver.jdb c .SQLServerStatement.executeStatement (SQLServerStatement. java: 222)
в com.microsoft.sqlserver.jdb c. SQLServerPreparedStatement.executeUpdate (SQLServerPreparedStatement. java: 471)
в org.jboss.jca.adapters.jdb c .WrappedPreparedStatement.executeUpdate (WrappedPreparedj.jpg). 1053 * .JDBCUpdateExecution.executeTranslatedCommand (JDBCUpdateExecution. java: 315) ... пропущено 27 общих фреймов

Здесь приведены подробные сведения о моем источнике данных для SQL Версия 2012 Server:

<driver name="sqlserver" module="com.microsoft.sqlserver">
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
    <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
</driver>

и версия драйвера: mssql-jdbc-8.2.0.jre8

Я попытался вставить ноль без Teiid (установив sql соединение с использованием драйвера Microsoft jdb c), и он работает. Таблица содержит только один столбец с типом данных datetimeoffset.

Пожалуйста, предложите любые идеи относительно того, что я могу попробовать, кроме этого. Заранее спасибо!

...