0

私は、jtds による SQL サーバーのvarchar(max)およびnvarchar(max)列の型textの誤った報告に関する問題を調査してきました (これらは、およびの推奨される置き換えですntext)。

inet、jtds、ms jdbc データベース ドライバーの間で、一貫性のある唯一の列定義は、

rs = Connection.getMetaData().getColumns(null,null,tableName,columnName);
rs.next();
rs.getInt("SQL_DATA_TYPE");

(ソースなどは上記リンク参照)

SQL_DATA_TYPE が「未使用」の場合

varchar(max)すべてのドライバーに対して -1 => を返しますLONGVARCHAR。ただし、nvarchar(max)それらはすべて -10 を返します。これはどのようなタイプで、どのように標準化されていますか?

4

1 に答える 1

0

ああ、なるほど; java sql型定数は、どこかのsql標準から派生しています。[msdnページは、-10がSQLDMO_DTypeNText(-1とは対照的にsSQLDMO_DTypeTextjava.sql.Types`)][1]. I can't find a page for Oracle, presumably because it's invested in java and soがそれらの参照であることを示しています。

于 2012-01-12T23:47:17.657 に答える