Вопрос по sql-server-2008 – jTDS неверно сообщает информацию о типе данных в метаданных набора результатов (для столбцов DATE сообщает NVARCHAR)

2

В настоящее время драйвер jTDS JDBC (1.2.5) для Microsoft SQL Server 2008, по-видимому, неправильно сообщает тип данных для столбцов DATE как NVARCHAR.

Вероятно, он ведет себя одинаково для обеих более ранних версий jTDS и SQL Server (2005, 2000)

  • Are there any workarounds for this that don't require switching to a different driver (for example Microsoft's own driver) or patching the jTDS driver?

  • Also I would like to avoid having to perform queries against the data dictionary (INFORMATION_SCHEMA.COLUMNS view, etc.) to look up the data type information (and possibly cross-referencing against the output of "exec sp_datatype_info" in order to retrieve the SQL data types)

Быстрое изучение выдающихся ошибок jTDS не показывает, будет ли это исправлено или нет.

Ответ на этот вопрос:JDBC - ошибка JTDS? Для столбцов типа дата и время (х) кажется, указывает на то, что это не происходит в SQL Server 2005.

Заранее спасибо.

+1 У меня тоже такая же проблема. Любое решение для этого? Ravindra Gullapalli

Ваш Ответ

1   ответ
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.

Интересная находка. К сожалению, вышеупомянутое условие также оценивается как истинное, если существует VARCHAR (или NVCHARCHAR), который требует 10 байтов памяти (getPrecision () для столбца VARCHAR вернет число байтов памяти против getColumnDisplaySize (), который будет возвращать длину ). SuperPomodoro

Похожие вопросы