我需要你的帮助。
我有一个 .xlsx 文件,如下所示:
我的目标是创建一个 SSIS 包,将这些数据推送到数据库表中。
现在,col1 到 col5 没问题,但是每个部分都有一个名称,并且应该是表中的第 6 列。
所以最终的目标表看起来像:
col1 | col2 | col3 | col4 | col5 | col6(名字从上到下的姓氏)
到目前为止,我已经尝试过:
变量到使用派生列的列,并将其推送到 ODBC 目标
显然这对我不起作用,当我运行包时,我总是收到消息“0 行已插入 ODBC 目标”。
老实说,我不确定如何解决这个问题。
任何帮助都非常感谢!!!
提前致谢!!!
编辑:
PS:我不能在这里使用任何一次或 Power BI/Query 技巧。它必须是纯 SSIS。
最佳答案
我能想到的解决方案是通过脚本任务,在这些步骤中
脚本本身:
public class ScriptMain : UserComponent
{
string keepname;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (Row.F5_IsNull)
{ keepname = Row.F1;
}
else
{
if (Row.F5 != "col5")
{
Row.Name = keepname;
}
}
}
}
说明:检查它是否是包含名称的行(col5 为空),因此,它将名称保存到变量 keepname。如果不是这样,并且它不是标题(col1='col1'),则更新变量名称。
这样做是拆分“名称行”或标题的行。你只需要携带一个默认输出。
测试:
关于excel - 导入带有 SSIS 的 Excel (.xlsx) 和带有包含多个小节的工作表的 Excel 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67506406/