【发布时间】:2021-05-21 14:37:30
【问题描述】:
我正在使用 SSIS 包将数据从 excel 文件 (.xlsx) 加载到 SQL 表。对于一列,它在数据中添加科学记数法,它已经存在于 excel 文件中。但它的实际值并未加载到 SQL 表中。我尝试了派生列、表达式等的多个选项。但我无法获得正确的值。
此列包含数字和 nvarchar 值的数据。下面是该列的示例。
ApplicationNumber
1.43E+15
923576663
25388447
TXY020732087
18794588
TXAP0000140343
**Actual Values -**
ApplicationNumber
1425600000000000
923576663
25388447
TXY020732087
18794588
TXAP0000140343
从 Business 到 Excel 的数据没有问题。但是我们如何在 SSIS 中处理这种情况呢? 我也试过 (DT_I8)ApplicationNumber==(DT_I8)ApplicationNumber, 但它给出了上面的值 1.43E+15 -> 1.430000000000000 而不是 1425600000000000
【问题讨论】:
-
Excel 有各种各样的问题作为来源。如果将文件保存为 CSV 会发生什么?如果这样可行,那么我建议改为导入它。
-
我试过了,但在 CSV 中它也添加了科学记数法。但我们必须在这里应用通用解决方案。
-
By 但它的实际值没有加载到 SQL 表中你的意思是行加载但列是 NULL? excel 作为一种数据交换格式,你真的会遇到无穷无尽的问题。首先要做的是尝试IMEX技巧stackoverflow.com/questions/3595131/…social.msdn.microsoft.com/Forums/sqlserver/en-US/…
-
您可以在导入文件之前进行此操作吗? superuser.com/a/1301584
-
@Nicolaesse :不,这个文件来自商业用户,所以我们不能手动更新/修改它。即使是设置更改。
标签: sql-server excel ssis business-intelligence