我有一个SSIS package (2008),电子邮件文件从一个给定的文件夹。我将文件名从Foreach container传递给发送电子邮件任务。然后,我想将包含文件名的变量拆分为用于电子邮件主题行的各部分(使用delimeter "-")。例如:
The file name is 123456-London-Jobrequirements.doc
电子邮件的主题是:
**Jobrequirements** document received for account **123456**, **London** Area.
我尝试使用表达式生成器与SUBSTRING和FINDSTRING进行拆分,但无法让它识别delimiter。
任何帮助都很感激。
发布于 2015-07-31 10:30:59
免责声明:我希望我可以安全地假设您的文件名基本上是这种格式:
<<String1>>-<<String2>>-<<String1>>.doc正如您所说的,您使用一个ForEachLoop容器来迭代文件名,所以我假设您有一个临时存储文件名的变量。让我们称它为@filename
下面是如何获得字符串:
@String1 = SUBSTRING(@filename, 1, FINDSTRING(@filename, "-",1)-1)
@String2 = SUBSTRING(@filename, FINDSTRING(@filename, "-",1)+1, FINDSTRING(@filename, "-",1)-1)
@String3 = SUBSTRING(@filename, FINDSTRING(@filename, "-",2)+1, FINDSTRING(@filename, "-",1)-1)然后,您可以将这些组合成另一个变量,比如@finalstring。
然后,使用表达式可以将字符串形成如下:
@String3 + " document received for account " + @String1 + " , " + @String2 + " Area."值得一提的是,微软在2012年SSIS中引入了一个非常有用的关键字TOKEN。不用说,这句话看起来要干净得多。
@String1 = TOKEN(@filename, "-", 1)
@String2 = TOKEN(@filename, "-", 2)
@String3 = TOKEN(@filename, "-", 3)添加变量:

https://stackoverflow.com/questions/31741619
复制相似问题