首页 > 解决方案 > SSIS 中的变量未在每个循环中更新

问题描述

我正在尝试创建一个简单的项目,我想从给定的网站下载 XML 文件。我已将文件名存储在数据库表中。我在本教程中所做的:在 SSIS 中实现 Foreach 循环逻辑是:

一个。从我的表中读取所有不同的行(我们称之为 XMLTable)
b。将此查询的结果分配给名为的用户变量:nameOfFileToDownload
c。为每个循环容器创建
d。配置为在本地为每一行分配要下载的文件名:nameFileForeachLoop 变量
e。使用 HTTPManager 从连接链接下载文件作为路径,动态文件名来自 nameFileForeachLoop 变量。
F。为虚拟文件创建 XMLFlatFile 连接 - 我在阅读上述教程后假设。

现在的问题是这个循环容器可以工作,但不会单独下载文件 - 仍然是一个最终为空的文件。我的nameFileForeachLoop变量在每次循环迭代期间都不会更新。更重要的是,我注意到在创建 FLAT FILE 期间,我只有 CSV 和 TXT 扩展名可用。我尝试了很多方法,但没有结果。你能帮我如何下载 XML 文件吗?例如,我有以下指向 XML 的链接:nbp.pl/kursy/xml/c001z180102.xml 这里的变化是这个链接的最后一部分,它带有我从我的 XMLTable 中获得的 XML 扩展名。

我已将组件配置如下:

照片1 照片2 照片3 照片4 照片5 照片6 照片7 照片8 照片9

标签: sql-serverssissql-server-2012

解决方案


你在正确的轨道上,但需要一些修正。

  1. 除非您在.CSV.TXT文件中创建表,否则不要创建和配置平面文件目标连接管理器。在提供的示例中,作者使用动态查询选择数据并将结果存储在动态 txt 文件中。据我了解,这不是你的情况。
  2. 以下是一些如何在 SSIS 中使用 HTTP 下载和保存文件的示例。下载脚本示例HTTP 下载不同方法的回顾

推荐阅读