2013-03-11 121 views
0

你好,我得到了与SSIS日志提供的路径目的地文本文件创建动态路径对于SSIS与文本文件的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

我有这个设置和运行在我所有的SSIS包,因为我喜欢保持所有表驱动。

,其中使用类似下面的select语句与SQL任务填充我创建了一个称为一个字符串变量每个包“LoggingPath”:

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

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

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

@ [用户:: LoggingPath] +“\\ “+ @ [System :: PackageName] +”_“+(DT_STR,4,1252)DATEPART(”yyyy“,@ [System :: StartTime])+ RIGHT(”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”

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

Kosh

+0

我想问你,你在哪里创建你的表情?我在我的日志文件的文件连接字符串表达式上创建它。是不是?因为我无法创建输出 – Sabilv 2013-03-13 03:10:48

+0

是的,我还在连接管理器下定义的日志文件的ConnectionString上创建表达式。当我评估表达式时,它看起来像“D:\ Logging \ DataExtract_20130314131344.csv”。如果回答您的问题,请查看箭头以查看我的上述回复。谢谢。 – 2013-03-14 19:07:40

+0

是的,我还在连接管理器下定义的日志文件的ConnectionString上创建表达式。当我评估表达式时,它看起来像“D:\ Logging \ DataExtract_20130314131344.csv”。请注意,LoggingPath =“D:\ Logging”和PackageName =“DataExtract”。你能评估表达吗?确保将日志文件的DelayValidation设置为“True”。 – 2013-03-14 19:16:19