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

本文关键字:SSIS 日志 程序 创建 动态 路径 文件 文本 | 更新日期: 2023-09-27 18:03:22

你好,文本文件的SSIS日志提供程序的路径目的地出现问题

首先我使用路径静态像D:'',但现在的路径我想从sql表中获取路径,并把它放在变量,

so i create expression builder for SSIS txt File connection string

@[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日志文件没有创建

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

我已经在所有的SSIS包中设置并运行了这个,因为我喜欢保持所有东西都是表驱动的。

在每个包中,我都创建了一个名为"LoggingPath"的字符串变量,它使用如下所示的选择语句填充SQL任务:

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

在此SQL Task中,ResultSet被设置为"Single row"。对于结果集,我使用结果名称= 0和变量名称="User::LoggingPath"引用前面提到的变量。我还为这个SQL任务设置了延迟验证为"True"。

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

@[用户::LoggingPath ] + "''" + @[ 系统::PackageName ] + "_" + ( DT_STR 4 1252) DATEPART("yyyy",@[系统:开始时间):)+正确的("0"+ (DT_STR 4 1252) DATEPART("毫米",@[系统:开始时间]),2)+正确的("0"+ (DT_STR 4 1252) DATEPART("弟弟",@[系统:开始时间]),2)+正确的("0"+ (DT_STR 4 1252) DATEPART (hh, @[系统:开始时间]),2)+正确的("0"+ (DT_STR 4 1252) DATEPART("小姐",@[系统:开始时间]),2)+正确的("0"+ (DT_STR 4 1252) DATEPART("党卫军",@[系统:开始时间]),2) + ".csv"

一定要记住应用双反斜杠"''",如上所示。希望对你有帮助。

Kosh