我有一个场景,我需要将文本文件或excel文件列作为参数传递给SSIS包中的Sql Query。
我的Text或excel文件有一个名为Policy_no的列,它有超过1000+ policy_no(EX:12358685)。我有一个Sql脚本 * select * from main_table,其中policy_no =?* 。这就是'?'必须来自我的包变量(txt或excel)。
我们如何通过SSIS实现这一目标,而不是为每个策略手动编写脚本。
谢谢
答案 0 :(得分:0)
假设您想循环遍历文件中的每一行并针对每个单独的值运行查询,您可以使用数据流任务来读取文本文件并在ADO Recordset中加载策略编号(声明为包变量) )。接下来,您将使用Foreach循环容器迭代记录集,依次将每个策略编号加载到第二个变量中,然后执行查询并执行其他任何需要的工作。
有关概述和示例,请参阅MSDN中的Use a Recordset Destination。
答案 1 :(得分:0)
您可以使用 EXECUTE SQL TASK (使用OLE DB连接连接Excel)从Excel获取“Policy_no”数据,然后将结果存储到变量中,例如:policyNoGroup,其数据类型应为对象,然后使用 For Each Loop 循环变量policyNoGroup,请参阅示例:http://www.codeproject.com/Articles/14341/Using-the-Foreach-ADO-Enumerator-in-SSIS