小编Pet*_*tze的帖子

将 float 转换为数据类型 numeric 的算术溢出错误

我正在尝试将数据从 csv 文件移动到 SQL 服务器数据库中。我的一些价值观是科学记数法。我想出了如何转换它们中的大部分,但是对于一个值,我得到了算术溢出错误。

导致错误的值是4.56621E-6。如果我通过删除 1 来更改 E 之前的部分,那么它会读取4.5662E-6导入工作正常。我需要导入的所有其他值都可以正常工作。

我使用格式文件来导入数据。在让我感到悲伤的专栏的下方:

88  SQLFLT8 0   0   "," 89  PPL_2_BL    ""
Run Code Online (Sandbox Code Playgroud)

数据库中的格式是十进制(18,9)。关于如何在不手动更改源文件中的值的情况下避免此错误的任何建议?

把它放在眼里。CSV 文件包含超过 220 万行,每行 154 列。这导致 CSV 文件大小超过 2GB。目前我正在处理一个测试文件。当最终上线时。我需要快速切换。这意味着我几天都无法分析和编辑文件。

更新

我稍微玩弄了这些值。

4.56621E-6   -> fails
6.5789474E-6 -> works
4.5662E-6    -> works
4.56622E-6   -> fails
4.566210E-6  -> works (surprisingly)
4.66621E-6   -> fails
Run Code Online (Sandbox Code Playgroud)

sql-server

6
推荐指数
1
解决办法
6729
查看次数

标签 统计

sql-server ×1