在SSIS中拆分文件名

在SSIS中拆分文件名,ssis,Ssis,我在一个文件夹中有以下命名约定的文件 ClientID\u ClientName\u Date\u Fileextension 12345_戴尔_20110103.CSV 我想从文件名中提取ClientID并将其存储在变量中。我不确定我会怎么做。似乎一个脚本任务就足够了,但我不知道如何继续。您的选项是在SSIS变量上使用表达式或使用脚本任务。一般来说,我更喜欢表达式,但从心理上讲,我可以看出这是很多代码,或者是很多相互交织的变量 相反,我会使用.NET中的方法。如果为示例数据调用Split方

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

ClientID\u ClientName\u Date\u Fileextension

  • 12345_戴尔_20110103.CSV

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

您的选项是在SSIS变量上使用表达式或使用脚本任务。一般来说,我更喜欢表达式,但从心理上讲,我可以看出这是很多代码,或者是很多相互交织的变量

相反,我会使用.NET中的方法。如果为示例数据调用Split方法,并提供下划线
\uuu
的分隔符,则会收到一个3元素数组

  • 12345
  • 戴尔
  • 20110103.CSV
将其包装在Try-Catch块中,并始终抓住第二个元素。快速和肮脏,但当然不会解决像
12345\u Dell\u Quest\u 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
    }