sql-server - 如何在 SSIS 变量中存储 'fully qualified' 和 'name only' 文件名

标签 sql-server variables ssis etl foreach-loop-container

我有一个 SSIS 包,它有一个 Foreach 循环容器,用于加载静态文件夹中的所有 .txt 文件。我将完全限定的文件名作为我在连接字符串中使用的变量传递。

我现在只需要将文件名传递给变量以用于执行存储过程,问题是如果我将 Foreach 循环集合更改为只检索文件名,它会阻止其余部分工作。

有没有办法将完全限定文件名和仅命名文件名都传递给 ssis 中的变量?

最佳答案

不,您可以选择一个:完全限定或仅文件名。就个人而言,如果除了存储过程之外的所有内容都需要完全限定名称,我会创建第二个变量 FileNameOnly 并用类似的表达式填充它

RIGHT(@[User::CurrentFileName], FINDSTRING(REVERSE(@[User::CurrentFileName]), "\\", 1 )-1)

(假设您已将该值存储在名为 CurrentFileName 的变量中)

或者您可以使用脚本任务将值分配给 FileNameOnly 并利用 .NET System.IO.Path.GetFileName方法。

关于sql-server - 如何在 SSIS 变量中存储 'fully qualified' 和 'name only' 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240949/

相关文章:

swift - 在 Swift 中声明多个变量的快捷方式

c++ - 在 C++ 中是否有等效的 Java equals 方法?

sql-server - 当单元格之一必须接受超过 255 个字符的值时,如何从 SQL Server 加载 Excel 中的数据

sql-server - 在 ssis 脚本任务中格式化 excel 目标列

javascript - JQuery:将var的html内容转换为字符串

c# - 在 C# 中是否有产生 64 位散列大小的散列算法?

sql-server - 将 null 导出到 .csv

sql-server - 在 SQL Server 中筛选日期时间列

python - 根据条件删除

sql-server - OrderBy().FirstOrDefault(<条件>) 与Where(<条件>).OrderBy().FirstOrDefault()