我有一个包含两个步骤的SSIS包:
1)FTP到服务器并将文件下载到本地SQL Server 2)执行一个SQL Satatement,它会触发一个Storeed Procedure。
这两个步骤都可以正常工作,但是,我想记录这些步骤的成功或失败,因此在系统中这样做,添加一个网格,其中包含运行的每个SSIS包的状态(成功或失败)那天。
为此,我为FTP步骤设置了一个事件处理程序,并向处理程序添加了“执行SQL任务”。这使用Property Expressions中的“SqlStatementSource”属性,以及插入system ::变量(如System :: ErrorCode,System :: ErrorDescription)的insert语句。
当我使用“评估表达式”按钮测试表达式时,一切都很好。但是当我尝试在FTP连接中使用错误的密码测试事件时,FTP步骤失败,但即使事件处理程序类型设置为OnError,也不会引发事件处理程序。
有什么想法吗?
提前致谢!
答案 0 :(得分:2)
你所做的似乎很好,不应该有任何问题。
确保在包级别添加错误处理程序,即顶级。
我今天做了同样的事情,就我而言,我将数据导出到本地驱动器上的平面文件中 并且正在使用 FilePath 的变量。 我也使用了 OnError 事件处理程序。 为了检查它是否工作正常,我将FilePath变量更改为“Z:\”(我的系统上不存在)。
我在 OnError 事件处理程序中遇到了错误,如
-1073450982组件“平面文件目标”(63)未执行预执行阶段并返回错误代码0xC020200E。
-1071636466无法打开数据文件“Z:\ COM_10212009.txt”。
希望这有帮助。