我正在尝试创建一个简单的项目,我想在其中从给定的网站下载 XML 文件。我已将文件名存储在数据库表中。我在看本教程时做了什么:Implementing Foreach Looping Logic in SSIS是:
一个。从我的表中读取所有不同的行(我们称之为 XMLTable)
b.将此查询的结果分配给名为的用户变量:nameOfFileToDownload
C。为每个循环容器创建
d.配置为在本地为每一行分配要下载的文件名:nameFileForeachLoop 变量
e.使用来自 nameFileForeachLoop 变量的动态文件名的 HTTPManager 从连接链接下载文件作为路径。
F。为虚拟文件创建了 XMLFlatFile 连接 - 我在阅读上述教程后假设。
现在的问题是这个循环容器可以工作但不会单独下载文件 - 仍然是一个最后是空的文件。我的 nameFileForeachLoop
变量在每次 LOOP 迭代期间都没有更新。更重要的是,我注意到在创建 FLAT FILE 期间我只有 CSV 和 TXT 扩展名可用。我尝试了很多方法但没有结果。你能帮我如何下载 XML 文件吗?
例如,我有以下指向 XML 的链接:nbp.pl/kursy/xml/c001z180102.xml 此处更改的是此链接的最后一部分,其中包含我从 XMLTable 获得的 XML 扩展。
我的组件配置如下:
最佳答案
您走在正确的轨道上,但需要一些修正。
- 不要创建和配置平面文件目标 连接管理器,除非您在.CSV 或.TXT 文件中创建表格。在提供的示例中,作者使用动态查询选择数据并将结果存储在动态 txt 文件中。据我了解,这不是你的情况。
- 下面是一些如何在 SSIS 中使用 HTTP 下载和保存文件的示例。 Sample download script和 Review of different approaches to HTTP download .
关于sql-server - 变量在 SSIS For Each Loop 中没有更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50164717/