使用SSIS日志提供程序为文本文件创建SSIS日志记录的动态路径

时间:2013-03-11 10:06:13

标签: c# path ssis event-log expressionbuilder

您好我遇到了文本文件的SSIS日志提供程序的路径目标

首先我使用路径静态像D:\\但是现在路径我想从sql表中获取路径并将其放在变量上,

所以我为SSIS txt文件连接字符串创建表达式构建器

@[User::LogPath]+ @[System::PackageName]+ ("_"+(RIGHT((DT_WSTR,4)
DATEPART("yyyy",GetDate()),4)+
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)+"_"+
RIGHT("0"+(DT_WSTR,2)
DATEPART("SS",GetDate()),2))+".log")

@[User::LogPath]没有'给出路径值,使得txt日志文件没有创建

1 个答案:

答案 0 :(得分:1)

我已在所有SSIS包中设置并运行,因为我喜欢保持所有表驱动。

在每个包中,我创建了一个名为“LoggingPath”的字符串变量,该变量使用如下所示的select语句填充SQL任务:

SELECT FilePath
FROM Files
WHERE FileFunction = 'Log'
  AND SSISPackage = 'ImportStuff'

在此SQL任务中,ResultSet设置为“单行”。对于结果集,我有结果名称= 0和变量名称=“User :: LoggingPath”引用前面提到的变量。对于此SQL任务,我也将延迟验证设置为“True”。

当SQL任务运行时,它会填充在SSIS日志文本日志文件下的以下表达式(类似于您的表达式)中使用的变量:

@ [User :: LoggingPath] +“\\”+ @ [System :: PackageName] +“_”+(DT_STR,4,1252)DATEPART(“yyyy”,@ [System :: StartTime])+右(“0”+(DT_STR,4,1252)DATEPART(“mm”,@ [System :: StartTime]),2)+ RIGHT(“0”+(DT_STR,4,1252)DATEPART(“dd”, @ [System :: StartTime]),2)+ RIGHT(“0”+(DT_STR,4,1252)DATEPART(“hh”,@ [System :: StartTime]),2)+ RIGHT(“0”+( DT_STR,4,1252)DATEPART(“mi”,@ [System :: StartTime]),2)+ RIGHT(“0”+(DT_STR,4,1252)DATEPART(“ss”,@ [System :: StartTime] ),2)+“。csv”

确保您记得应用双反斜杠“\\”,如上所示。希望这会有所帮助。

信贷基金