Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java双精度到SQL Server数据类型_Java_Sql Server_Liquibase - Fatal编程技术网

Java双精度到SQL Server数据类型

Java双精度到SQL Server数据类型,java,sql-server,liquibase,Java,Sql Server,Liquibase,我想从表中插入一些Java双值和一些列(我使用的是SQL Server)。 如何使用Liquibase创建上述表格?更确切地说,列应该是什么类型?下面的尝试无效。显然,浮动法不够精确 <column name="visitsAvg" type="FLOAT"/> Liquibase对列使用JDBC类型。JDBC/SQL类型FLOAT与SQL Server类型FLOAT不同。JDBC类型FLOAT是一个32位单精度浮点。如果需要64位双精度(FLOAT(53),则应指定DOUBLE)

我想从表中插入一些Java双值和一些列(我使用的是SQL Server)。 如何使用Liquibase创建上述表格?更确切地说,列应该是什么类型?下面的尝试无效。显然,浮动法不够精确

<column name="visitsAvg" type="FLOAT"/>

Liquibase对列使用JDBC类型。JDBC/SQL类型
FLOAT
与SQL Server类型
FLOAT
不同。JDBC类型
FLOAT
是一个32位单精度浮点。如果需要64位双精度(
FLOAT(53)
,则应指定
DOUBLE


可能是liquibase将对
type=“FLOAT”
的请求转换为SQL Server中类型为
FLOAT(24)
的列,这不足以完全精确地存储Java
double

问题是我得到的是NaN而不是数字。更确切地说,在我的代码中的某个点上,有一个0的除法。因此,问题不在于将JavaDouble转换为某种SQL类型,也不在于Liquibase。我错误地认为问题可能存在于某个地方。

它不起作用了,怎么办?您是否有错误,如果有,是什么错误?如果没有,它是如何不工作的?您是否尝试过使用类型
DOUBLE
?@markrotVeel我使用的是Spring批处理,出现异常消息
提供的值不是数据类型float的有效实例。检查源数据是否存在无效值。无效值的一个例子是刻度大于精度的数字类型的数据。
我指定了DOUBLE,但仍然遇到同样的问题。我甚至尝试过java.sql.Types.DOUBLE,但没有任何改进。还有其他建议吗?@Dragos我认为您需要显示一些触发错误的实际代码以及SQL server中的实际表定义