【问题标题】:Dynamic flat file connection string in SSISSSIS 中的动态平面文件连接字符串
【发布时间】:2017-03-29 09:47:46
【问题描述】:

我在我的 SSIS 包中使用平面文件连接源。文件名具有以下命名约定,即<<filename><year><month><date><time>>。示例 - sample201703291515.txt。文件名将附加不同的time,因为文件创建时间会有所不同。我在连接字符串中创建了表达式来获取当前日期的名称。

"c:\source\sample"+(DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() ))+DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() ))+(DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() ))+".txt"

但是由于时间变化,是否有可能动态获取文件名或者我可以添加任何表达式?请帮忙。

【问题讨论】:

    标签: sql-server ssis


    【解决方案1】:

    处理此问题的常规方法是使用遍历文件夹中所有文件的 foreach 循环。然后使用脚本任务查看文件名并将其与某些已知模式进行比较。因此,如果您知道您想要“sample20170329xxxx.txt”,其中 xxxx 是某个未知的时间字符串,您可以在脚本任务中使用正则表达式,或者您可以只比较文件名的子字符串并只查看前面的字符名称的时间部分,以查看它是否是您想要的文件。

    然后,如果它是您想要的文件,则将连接字符串设置为使用该文件名,否则,循环到下一个文件。

    【讨论】:

      【解决方案2】:

      将所有文件名存储在对象变量中。创建一个 Foreach 循环容器。在每个循环迭代中,在字符串变量中分配当前文件名。在连接管理器中,右键单击并查看属性。在属性中选择“表达式”。 然后选择将打开一个新窗口的椭圆。选择 ConnectionString 作为属性并单击椭圆。现在拖放所需的变量以使其成为动态的。

      另请参阅Dynamic Flat File Connections in SQL Server Integration Services

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-13
        • 2016-07-18
        • 1970-01-01
        • 1970-01-01
        • 2019-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多