JTDS错误地报告在结果集元数据的数据类型信息(用于DATE列,报告NVARCHAR)(jTDS i

2019-07-29 07:47发布

目前,JTDS JDBC驱动程序(1.2.5)针对微软SQL Server 2008中出现错误地报告为DATE列,NVARCHAR数据类型。

它可能表现为两种早期版本JTDS和SQL Server(2005,2000)的相同

  • 是否有这样不需要切换到不同的驱动程序(例如微软自己的驱动程序)或修补JTDS驱动程序的任何变通办法?

  • 此外,我想避免必须以检索SQL执行对数据字典(INFORMATION_SCHEMA.COLUMNS视图等)来查找数据类型信息的查询(和可能的交叉引用对的“EXEC sp_datatype_info”输出数据类型)

在JTDS优秀的bug快速细读并不表示这是否将是固定的或没有。

回答这个问题: JDBC - JTDS错误? 对于类型日期和时间(X)的列似乎表明,这并不在SQL Server 2005中出现。

提前致谢。

Answer 1:

我发现条件的方案

metaData.getColumnType(columnNumber) == 12

如果满足这个条件,执行查询

SELECT System_Type_Id FROM Sys.Columns WHERE Name = [column name] AND Object_Id = (SELECT Object_Id FROM Sys.Tables WHERE Name = [table name])

smalldatetime它将返回58

datetime将返回61



文章来源: jTDS incorrectly reports data type info in result set metadata (for DATE columns, reports NVARCHAR)