我正在安排一个 SSIS 包用于将数据导出到平面文件。
但是,我希望生成包含一些日期信息的文件名,例如 foo_20140606.csv。
这可行吗?
谢谢。
但是,我希望生成包含一些日期信息的文件名,例如 foo_20140606.csv。
这可行吗?
谢谢。
通过表达式可以使连接变得更加动态。
从“连接管理器”面板中选择您的平面文件连接。在“属性”窗格中,单击“表达式(...)”选项。然后从下拉列表中选择ConnectionString属性,并将表达式放入“表达式(...)”中并评估它。
表达式构建 -
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属性将自动被表达式替换。
您也可以按照这些逐步文章进行操作。
SSIS 目录
作为部署模型,那么您可以配置项目/包级别的参数和连接。在 SSMS 中,转到 Integration Services Catalog,然后右键单击项目/包,您将看到该选项。 - Vikramsinh Shinde在连接管理器中选择您的文件连接,进入属性并点击表达式旁边的(...)。
在编辑器中选择属性列中的ConnectionString。 在表达式文本框中,您可以输入类似于“rootNameOfFile”+(DT_WSTR,50)(DT_DBDATE)GETDATE()+“.csv”的内容。
评估您的表达式以确保您得到了预期的结果,完成!
<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文件定义文件夹位置。