在我的 ssis 包中,我在序列容器中有数据流任务。OLEDB 是源,平面文件是目标。我为平面文件的位置(@[User::strUnknownFileLocation])提供了一个变量。同样对于平面文件的名称,我添加了一个变量(@[User::StrUnknownFileName])。在数据流任务之后,我有发送邮件任务。我将该平面文件作为附件附加到发送邮件任务中。
这是我在文件名变量 (@[User::StrUnknownFileName]) 中评估的表达式。我已经在属性中设置了 Evaluate Expression is True 。
"UnknownValue_"+ (DT_STR,4,1252)YEAR(getdate()) +(MONTH( getdate()) < 10 ? "0" : "")+ (DT_STR,4,1252)MONTH(getdate()) +(DAY( getdate()) < 10 ? "0" : "") + (DT_STR,4,1252)DAY(getdate()) + ".txt"
这是在我的平面文件连接属性表达式中——连接字符串
@[User::strUnknownFileLocation]+ @[User::StrUnknownFileName]
这是我的平面文件连接属性表达式
文件位置的变量我没有任何表达式。我在变量中添加了位置值
(@[User::strUnknownFileLocation]).
像 M:\ETL\Tmp\ 在发送邮件任务中,我有一个附件,附件的表达式如下所示,
@[User::strUnknownFileLocation]+ @[User::StrUnknownFileName]
我昨天运行了包裹,它很好。它附加了一个文件为 UnknownValue_20130405.txt。但是今天打开包裹,发送邮件任务出错。当我点击错误时,它说它找不到文件 UnknownValue_20130406.txt 或者我没有打开该位置的权限。它有点奇怪。
所以,我执行 DFT 任务。所以文件生成了。然后它可以工作,因为文件在那里。那么为什么它不首先运行。所以现在明天当我打开我的包并尝试运行时,它不会运行,因为那个日期没有文件?但是,如果我只运行 DFT 任务,它将生成一个平面文件,并且在该位置会有一个平面文件。但这不是应该的样子。
有什么我做错了吗?我无法理解这一点。任何帮助将不胜感激。
提前致谢。