9

MS SQL Server に、データ型が日付の列を持つテーブルがあります。DBとのJDBC接続にjtds.jarを使用しています。Connection から DatabaseMetaData を取得しています。DatabaseMetaData の列をチェックしているときに、

int iType = rsMeta.getInt("DATA_TYPE");

日付ではなく文字列である列タイプを返しますjava.sql.Types.VARCHAR。しかし、それも返されます

String tmp = rsMeta.getString("TYPE_NAME");

名前を日付として入力します。

しかし、Oracle の場合、日付データ型を として返しますjava.sql.Types.DATE

このような違いはなぜですか?

4

2 に答える 2

4

これは既知の JTDS バグです。 http://sourceforge.net/p/jtds/bugs/679/を参照してください。

SQLServer Date 型の返されるデータ型は、長さが 10 の varchar として返されます。これは間違っています。Sql.Date として返されるはずです。int iType = rsMeta.getInt("DATA_TYPE"); 文字列 tmp = rsMeta.getString("TYPE_NAME");

于 2013-01-14T09:34:21.910 に答える