我正在安排一个 SSIS 包将数据导出到平面文件。
但是我想生成带有一些日期信息的文件名,例如foo_20140606.csv
可以吗?
谢谢
借助表达式,您可以使连接动态化。
从“连接管理器”窗格中选择您的平面文件连接。在“属性”窗格中,单击“表达式(...)”。然后从下拉列表中选择 ConnectionString Property,并在 Expression(...) 中输入您的表达式并对其求值。
表达式构建 -
For day : (DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() ))
For month: (DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() ))
For Year: (DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() ))
示例表达式(您需要根据您的要求进行调整)-
"E:\\Backup\\EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , getdate() ) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" , getdate() ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , getdate() ), 2) +".txt"
给出
E:\Backup\EmployeeCount_20140627.txt
作为价值。
请注意 - 您需要一个有效的平面文件连接,因此首先创建平面文件连接,其 connectionString 属性将自动被表达式替换。
您也可以按照这些分步文章进行操作。
您需要通过将路径中的每个反斜杠加倍来转义反斜杠:
在连接管理器中选择文件连接,转到属性并单击表达式旁边的 (...)。
在编辑器中,从属性列中选择 ConnectionString。 在表达式文本框中,您可以输入类似“rootNameOfFile”+(DT_WSTR, 50)(DT_DBDATE)GETDATE()+“.csv”
评估你的表达,确保你得到了你所期望的结果,瞧!
如果您没有 SSDT,因此无法使用 GUI 进行编辑,这里是直接编辑 SSIS 包的方法:
之前:
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]"
DTS:ObjectName="DestinationConnectionFlatFile"
DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}"
DTS:CreationName="FLATFILE">
<DTS:ObjectData>
之后:
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]"
DTS:CreationName="FLATFILE"
DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}"
DTS:ObjectName="DestinationConnectionFlatFile">
<DTS:PropertyExpression
DTS:Name="ConnectionString">"C:\\Exportdir\\Filename_"
+ (DT_WSTR,4)DATEPART("yyyy",GetDate()) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) + "_" +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2)+
RIGHT("0" + (DT_WSTR,2)DATEPART("mi",GetDate()),2) + ".csv"
</DTS:PropertyExpression>
<DTS:ObjectData>
您可以轻松地为 SSIS 包中的平面或 csv 文件提供动态文件名,如 DataFeed_{yyyyMMdd} .txt 例如。 DataFeed_20181212.txt。只需转到平面文件连接管理器属性并定义表达式值,以另一种方式,您可以定义包级别变量,并且可以在表达式中使用该变量,并且根据环境,您可以使用配置文件 .dtsconfig 文件定义文件夹位置
更多详细信息@ssis 平面文件的动态文件名