在SSIS中拆分文件名

时间:2013-10-08 21:11:31

标签: ssis

我在一个文件夹中有以下命名约定的文件

ClientID_ClientName_Date_Fileextension

  • 12345_Dell_20110103.CSV

我想从文件名中提取ClientID并将其存储在变量中。我不确定我会怎么做。似乎脚本任务就足够了,但我不知道如何继续。

1 个答案:

答案 0 :(得分:0)

您的选项是在SSIS变量上使用表达式或使用脚本任务。作为一般规则,我更喜欢表达式,但在精神上,我可以说这是很多代码,或者很多交织在一起的变量。

相反,我会在.NET中使用String.Split方法。如果您为示例数据调用了Split方法并提供了下划线_的分隔符,那么您将收到一个3元素数组

  • 12345
  • 戴尔
  • 20110103.CSV

将它包装在Try Catch块中并始终抓住第二个元素。快速而肮脏,但当然不会解决像12345_Dell_Quest_20110103.CSV这样的问题,但你没有问过这个问题。

代码近似

    string phrase = Dts.Variables["User::CurrentFile"].Value.ToString()
    string[] stringSeparators = new string[] {"-"};
    string[] words;
    try
    {
        words = phrase.Split(stringSeparators, StringSplitOptions.None);
        Dts.Variables["User::ClientName"].Value = words[1];
    }
    catch
    {
        ; // Do something with this error
    }