首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用干涉仪分割SSIS变量

利用干涉仪分割SSIS变量
EN

Stack Overflow用户
提问于 2015-07-31 08:32:26
回答 1查看 1.5K关注 0票数 0

我有一个SSIS package (2008),电子邮件文件从一个给定的文件夹。我将文件名从Foreach container传递给发送电子邮件任务。然后,我想将包含文件名的变量拆分为用于电子邮件主题行的各部分(使用delimeter "-")。例如:

The file name is 123456-London-Jobrequirements.doc

电子邮件的主题是:

**Jobrequirements** document received for account **123456**, **London** Area.

我尝试使用表达式生成器与SUBSTRINGFINDSTRING进行拆分,但无法让它识别delimiter

任何帮助都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-31 10:30:59

免责声明:我希望我可以安全地假设您的文件名基本上是这种格式:

代码语言:javascript
复制
<<String1>>-<<String2>>-<<String1>>.doc

正如您所说的,您使用一个ForEachLoop容器来迭代文件名,所以我假设您有一个临时存储文件名的变量。让我们称它为@filename

下面是如何获得字符串:

代码语言:javascript
复制
@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

然后,使用表达式可以将字符串形成如下:

代码语言:javascript
复制
@String3 + " document received for account " + @String1 + " , " + @String2 + " Area."

值得一提的是,微软在2012年SSIS中引入了一个非常有用的关键字TOKEN。不用说,这句话看起来要干净得多。

代码语言:javascript
复制
@String1 = TOKEN(@filename, "-", 1)
@String2 = TOKEN(@filename, "-", 2)
@String3 = TOKEN(@filename, "-", 3)

令牌上的MSDN链接

添加变量:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31741619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档