如何在SSIS变量中存储“完全限定”和“仅名称”文件名

时间:2015-01-30 17:03:59

标签: ssis ssis-development

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

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

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

2 个答案:

答案 0 :(得分:4)

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

的表达式填充它
RIGHT(@[User::CurrentFileName], FINDSTRING(REVERSE(@[User::CurrentFileName]), "\\", 1 )-1)

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

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

答案 1 :(得分:0)

您可以添加另一个变量@[User::Filename],并在 Foreach循环容器中添加具有以下表达式的 Expression Task

@[User::Filename] = TOKEN(@[User::FilePath],"\\", TOKENCOUNT(@[User::FilePath],"\\"))