为什么SSIS Excel源不读取空列?
我有一个日历表Excel文件。每个月都会添加一个新列 我不应该读专栏的名字。当我在5月份开发ETL时,我将虚拟列放置到12月份。Excel文件如下(列): 为了在ETL中形成元数据数据,我在12月之前添加了虚拟列:为什么SSIS Excel源不读取空列?,ssis,Ssis,我有一个日历表Excel文件。每个月都会添加一个新列 我不应该读专栏的名字。当我在5月份开发ETL时,我将虚拟列放置到12月份。Excel文件如下(列): 为了在ETL中形成元数据数据,我在12月之前添加了虚拟列: customer jan12 feb12 mar12 apr12 may12 mon mon mon mon mon mon mon 然后在SSIS Excel源代码中,我编写了一个查询: select * from Sheet1$A2:M1624 (不读取列名,直到dec列才读
customer jan12 feb12 mar12 apr12 may12 mon mon mon mon mon mon mon
然后在SSIS Excel源代码中,我编写了一个查询:
select * from Sheet1$A2:M1624
(不读取列名,直到dec列才读取)
现在在6月份,Excel文件如下所示:
customer jan12 feb12 mar12 apr12 may12 jun12
因为我创建了元数据,所以我认为加载将是和平的。我的命运是ETL失败。在运行时,SSIS不会从excel文件加载空白列,即使在创建源时提供了这些列的元数据。问题场景:我们在excel源中定义了10列,并将它们映射到目标中的10列。在运行时,如果我们只遇到来自excel源的3列,则excel源将(自动)将元数据重建为仅3列。由于目标映射有10列,所以包在验证阶段失败 所以,为了读取具有不同列的excel文件,我们需要执行脚本任务。但这里的限制是,您至少应该知道excel中的最大列数。这是我们可以留下的东西
在运行时,SSIS不会从excel文件加载空白列,即使在创建源时提供了这些列的元数据。问题场景:我们在excel源中定义了10列,并将它们映射到目标中的10列。在运行时,如果我们只遇到来自excel源的3列,则excel源将(自动)将元数据重建为仅3列。由于目标映射有10列,所以包在验证阶段失败 所以,为了读取具有不同列的excel文件,我们需要执行脚本任务。但这里的限制是,您至少应该知道excel中的最大列数。这是我们可以留下的东西
你所说的“medata”/“metada”是什么意思?你有错误信息给我们吗?@Josien它说,needsnewmetadaw你说的“medata”和“metada”是什么意思?你有错误信息给我们吗?@Josien上面写着,NEEDSNEWMETADA
customer jan12 feb12 mar12 apr12 may12 jun12