使用 SSIS 导出具有有限记录集的 XML 个文件
Exportin XML files with limited record set with SSIS
我有 table +2000 行。每行代表我设法生成的 XML 文件中的一个实例:
输出:
需要一次 select 500 行,生成 XML 并将其作为文件保存到 selected 文件夹中。文件的命名应该是动态的,例如。 file_name_20171128165412 和下一个 file_name_20171128165520
尝试使用具有可变参数的 For each 循环来解决,但没有正确解决 - 还需要保存和命名 XML 文件的想法。
我不经常使用 for 循环,但你可以这样做:
设置以下变量:
loopcounter int set initial value = 0
rowsprocessed int set initial value = 500
sql string
- 添加一个 for 循环容器
- 将 eval 表达式设置为@rowsprocessed <500(这将在处理少于 500 条记录时进行最后一次循环
- 将赋值表达式设置为@loopcounter = @loopcounter +1
将表达式赋给sql到:
";以cte为
(
select *,ROW_NUMBER() over (order by [主键]) rn
来自 [你的 table]
)
select *
来自cte
其中 rn 在 " + cstr(@loopcounter*500+1) +" 和 "+cstr((@loopcounter+1)*500)
之间
使用@sql 作为提取查询
- 将行计数添加到数据流并将值分配给已处理的行。
希望对您有所帮助。
我有 table +2000 行。每行代表我设法生成的 XML 文件中的一个实例:
输出:
需要一次 select 500 行,生成 XML 并将其作为文件保存到 selected 文件夹中。文件的命名应该是动态的,例如。 file_name_20171128165412 和下一个 file_name_20171128165520
尝试使用具有可变参数的 For each 循环来解决,但没有正确解决 - 还需要保存和命名 XML 文件的想法。
我不经常使用 for 循环,但你可以这样做:
设置以下变量:
loopcounter int set initial value = 0
rowsprocessed int set initial value = 500
sql string
- 添加一个 for 循环容器
- 将 eval 表达式设置为@rowsprocessed <500(这将在处理少于 500 条记录时进行最后一次循环
- 将赋值表达式设置为@loopcounter = @loopcounter +1
将表达式赋给sql到:
";以cte为 ( select *,ROW_NUMBER() over (order by [主键]) rn 来自 [你的 table] ) select * 来自cte 其中 rn 在 " + cstr(@loopcounter*500+1) +" 和 "+cstr((@loopcounter+1)*500)
之间
使用@sql 作为提取查询
- 将行计数添加到数据流并将值分配给已处理的行。
希望对您有所帮助。