【发布时间】:2020-08-03 19:25:07
【问题描述】:
我设置了一个 ETL 流程,用于从 Excel 电子表格中获取数据并使用 SSIS 将其存储在数据库中。但是,Excel 文件中的某一列被格式化为百分比,有时会在数据库中错误地存储为 NULL 值,就好像存在某种翻译错误一样。
图片是 Excel 中列所使用的确切格式。
有趣的是,这些百分比值在某些日子确实可以正确加载,但由于某种原因,我作为这个问题的示例给出的一个特定 Excel 表在通过 SSIS 处理器时根本不会加载它们中的任何一个。
在 Excel 中,这些值将显示为“50.00%”,当 SSIS 处理器能够正确翻译它们时,它将在数据库中显示为十进制等效值“0.5”,这是我想要的,而不是NULL 值。我在 SSIS 中为此使用的数据类型是 Unicode 字符串 [DT_WSTR],它在数据库中保存为 NVARCHAR。
了解为什么这些值有时无法按预期显示/翻译?我曾尝试在 SSIS/SQL Server 中弄乱数据类型,但它要么没有导致任何变化,要么没有错误。当我将测试值放入 Excel 工作表中时,例如“测试”以查看它是否从该列导入任何内容,它似乎确实有效(只是不适用于我需要的百分比数字)。
【问题讨论】: