gpt4 book ai didi

excel - SSIS 不会为动态 xlsx 文件名执行 foreach 循环

转载 作者:行者123 更新时间:2023-12-04 22:26:09 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





SSIS - How to loop through files in folder and get path+file names and finally execute stored Procedure with parameter as Path + Filename

(2 个回答)


2年前关闭。




我有一个 xlsx 文件,它将每月放入一个文件夹中。文件名将根据日期每月更改(filename_8292019),我无法更改。

我想构建一个 foreach 循环来获取 xlsx 文件并对其进行操作(加载到 SQL 服务器表中,将文件移动到存档文件夹)。我无法弄清楚如何使用动态文件名(日期更改的地方)来做到这一点。

在将 xlsx 转换为 CSV 以及直接指向 xlsx 文件名时,我能够成功运行包。

[平面文件目标 [219]] 错误:无法打开数据文件“文件名”
或与未找到文件有关的错误

最佳答案

Files: Collection 上的条目Foreach Loop 的选项卡容器将接受通配符。

这里的一般模式是创建一个变量,例如 FileName .设置您的Files:类似于:

Files:
BaseFileName*

或者,如果您想确保只选择电子表格,也许:
Files:
BaseFileName*.xlsx

选择 Name and extensionFully qualified ,其中将包括完整的文件路径。我通常只使用 Name and extension并将文件路径放入另一个变量中,这样当 Ops 告诉我他们正在移动我的放置位置时,我可以更改参数而不是编辑包。此步骤告诉容器记住它刚刚找到的文件的名称,以便以后可以将其用于变量映射。

Variable Mappings选项卡,选择您的变量名称并将其分配给 Index 0。

然后,对于每个电子表格,容器将循环,获取它找到的与您的模式匹配的第一个文件的名称,并将带有日期扩展名(和路径,如果您这样做的话)的全名分配给您的变量.将变量作为输入参数传递给循环内的任务并使用它来处理文件,包括将其移动到存档,否则您将陷入无限循环,一遍又一遍地处理相同的文件。 <--这听起来像是经验之声吗?是的。去过也做过。

编辑:

在这里, FullFilePath变量只是文件夹名称,没有文件引用。 ( Folder 框中的红色变量到红色条目)。
FileBaseName变量驱动 Files 中显示的内容盒子。 (蓝色到蓝色)。

另一个变量获取带有日期扩展名的实际文件名。稍后,在 File System Task 中说,如果我需要文件夹和文件名一起,我连接变量。

enter image description here

至于 Excel Connection Manager你得到的错误,不幸的是我没有帮助。我不使用它。我们有用于 SSIS 的 SentryOne 任务工厂,其中包括一个更具弹性的 Excel 连接器。

关于excel - SSIS 不会为动态 xlsx 文件名执行 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com