2

現在、Microsoft SQL Server2008に対するjTDSJDBCドライバー(1.2.5)は、DATE列のデータ型をNVARCHARとして誤って報告しているようです。

おそらく、以前のバージョンのjTDSとSQL Server(2005、2000)の両方で同じように動作します。

  • 別のドライバー(たとえば、Microsoft独自のドライバー)に切り替えたり、jTDSドライバーにパッチを適用したりする必要のない回避策はありますか?

  • また、データ型情報を検索するためにデータディクショナリ(INFORMATION_SCHEMA.COLUMNSビューなど)に対してクエリを実行する必要がないようにします(SQLを取得するために「execsp_datatype_info 」の出力に対して相互参照することもできます)。データ型)

jTDSの未解決のバグをざっと見ても、これが修正されるかどうかはわかりません。

この質問への回答:JDBC-JTDSバグ?date and time(x)タイプの列の場合、これはSQLServer2005では発生しないことを示しているようです。

前もって感謝します。

4

1 に答える 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

于 2012-07-31T19:07:49.550 に答える