【问题标题】:SSIS importing percentage column from Excel displaying as NULL in databaseSSIS从Excel导入百分比列在数据库中显示为NULL
【发布时间】: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 工作表中时,例如“测试”以查看它是否从该列导入任何内容,它似乎确实有效(只是不适用于我需要的百分比数字)。

【问题讨论】:

    标签: sql excel ssis


    【解决方案1】:

    这个问题是由我的数据的前几行中存在的“混合数据类型”引起的(“混合”部分是空白字段),这可以解释为什么有些工作表可以工作而其他工作表不能工作。

    https://stackoverflow.com/a/542573/11815822

    设置连接字符串以解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多