JDBC`decimal(28,2)`变成`java.sql.Types.DOUBLE`

JDBC`decimal(28,2)`变成`java.sql.Types.DOUBLE`,java,sql-server,jdbc,sqldatatypes,jtds,Java,Sql Server,Jdbc,Sqldatatypes,Jtds,数据库中有一个小数28,2列。JDBC为该列返回java.sql.Types.DOUBLE。 你知道为什么会发生这种情况,以及如何避免这种情况吗 对于小数38、19,它会按预期返回java.sql.Types.DECIMAL 司机是jtds。在Java1.6下工作。DBMS是MS SQL。这是正确的行为。你希望它是什么?如果您想要整数类型,那么列应该是INT我希望是java.sql.types.DECIMAL。这种情况下,映射到java.sql.types.DOUBLE是直接从表中选择还是使用一

数据库中有一个小数28,2列。JDBC为该列返回java.sql.Types.DOUBLE。 你知道为什么会发生这种情况,以及如何避免这种情况吗

对于小数38、19,它会按预期返回java.sql.Types.DECIMAL


司机是jtds。在Java1.6下工作。DBMS是MS SQL。

这是正确的行为。你希望它是什么?如果您想要整数类型,那么列应该是INT

我希望是java.sql.types.DECIMAL。这种情况下,映射到java.sql.types.DOUBLE是直接从表中选择还是使用一些连接之类的更复杂的查询?我指的是从中获得ResultSetMetaData对象的stmt+1 BTW这篇文章包含到MSFT的2个链接:@FabianBarney,是的,它接受具有多个连接和联合的复杂查询的值。原始的列类型是decimal28,2。@home,链接说decimal始终是java.sql.Types.decimal。但至少在jtds中不是这样:@khachik:yep,IMHO这篇文章或SQL Server JDBC驱动程序都有缺陷:-