Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么SSIS Excel源不读取空列?_Ssis - Fatal编程技术网

为什么SSIS Excel源不读取空列?

为什么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列才读

我有一个日历表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列才读取)

现在在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