当前位置: 首页 > 知识库问答 >
问题:

无法使用Teiid在SQL Server的datetimeoffset列中插入null

武卓
2023-03-14

我正在使用Teiid在DateTimeOffsite列中插入null值,但是PreparedStatement.setNULL(index,types.timestamp)没有插入null。我得到的错误是:

原因:java.sql.sqlexception:远程com.microsoft.sqlserver.jdbc.sqlserverexception:不允许从数据类型varbinary到datetimeoffset的隐式转换。使用CONVERT函数运行此查询。

在com.microsoft.sqlserver.jdbc.sqlserverexception.makefromdatabaseError(sqlserverexception.java:262)
在com.microsoft.sqlserver.jdbc.sqlserverstatement.getnextresult(SqlServerStatement.java:1632)
在在com.microsoft.sqlserver.jdbc.tdscommand.execute(iobuffer.java:7225)
在com.microsoft.sqlserver.jdbc.sqlserverconnection.executeCommand(sqlserverconnection.java:3053)
在com.microsoft.sqlserver.jdbc.sqlserverstatement.executeCommand(sqlserverstatement.java:247)
在lserverPreparedStatement.java:471)
位于org.jboss.jca.adapters.jdbc.wrappedPreparedState在org.teiid.translator.jdbc.jdbcupdateExecution.ExecuteTranslatedCommand(jdbcupdateExecution.java:315)...27个常见帧被省略

以下是SQL Server 2012版本的数据源详细信息:

<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的情况下插入null(通过使用Microsoft jdbc驱动程序建立sql连接),它正在工作。该表仅包含一列,其数据类型为DateTimeOffsite

请提出任何想法,我可以尝试除了这个。提前感谢!

共有1个答案

卫才哲
2023-03-14

这是作为Teiid问题捕获的:https://issues.redhat.com/browse/Teiid-5949

建议了一个对象类型映射的解决方案,但可能应该通过更新导入逻辑来解决。

 类似资料:
  • 我有一个使用存储过程填充的表。这个存储过程使用从另一个数据库调用属性的视图。 举例来说,它类似于: 视图的定义如下: 并正确插入值,但如果以这种方式使用视图: 显示此消息: 正在检查身份信息:当前身份值“1252” DBCC执行已完成。如果DBCC打印了错误消息,请与系统管理员联系。 Msg 515,第16级,状态2,过程TSP,第16行 无法将值NULL插入表db2的“金额”列中。dbo。表';

  • 有冬眠和MSSQL环境。我遇到了一个错误:“无法将值NULL插入到“comment_id”列中,表“CHT”。dbo。记者"点评";;列不允许空值。“插入失败。”Hibernate配置: comment_id列在db中具有标识属性:如果我使用db客户端进行插入: 它非常适合我。 Hibernate日志: SQL-插入REPORTER_COMMENTS(REPORTERID, COMMENT,COM

  • Hy, 我为数据库创建了以下3个表: ); 我有以下存储过程 C#代码: 但在我将数据插入使用上述代码的表单后,我得到了以下错误: 无法将值NULL插入列User_Id...... PLATFORM. MDF. dbo. Buyer;列不允许空值。INSERT失败。 无法将值NULL插入列Type_Id,表... PLATFORM. MDF. dbo. User;列不允许空值。INSERT失败。

  • 我正在 JBoss Developer Studio 中开发 Teiid Designer,要执行“执行 VDB”,它说必须运行 teiid 的实例,所以我启动 JBoss DV 6.0 服务器,并在服务器的 Teiid 实例视图上测试连接,测试“测试管理连接”和“测试 JDBC 连接”说“确定”,但是当我尝试运行“执行 VDB”或任何形式的以从 IDE 建立与 teiid 实例的连接时, 它说的

  • 我使用赛贝斯ASE 15.7和面临的问题,而代理表插入默认值。我们希望将数据从源表迁移到目标表,其中目标表在远程服务器中具有具有非空值和默认值的附加列。请参阅以下表格详情。 源表: 目标表: 在源数据库中创建代理表: 在Source中,我们有三个列的详细信息,我们用它来构建查询。 脚本: 错误: 虽然我们已经声明了COL4的默认costraint,但它不接受通过代理表。有没有办法解决这个问题。我们

  • 问题内容: 我试图将查询的null插入允许null的datetime列中。我的查询工作正常(我认为)。但是将其1900-01-01 00:00:00.000而不是null放入datetime列。为什么会发生这种情况,我该如何解决? 我创建了自己的表来对此进行测试,并且在那里没有空值是一个问题。但是,这是另一个数据库中的问题。我认为这一定与其他数据库有关。 问题答案: 要查看数据库中的所有触发器,请