SSIS 具有脚本对象
Script Task
和 Script Component
,它们提供了预期的 .Net
编程环境。其中有各种事件方法用于触发错误条件并将信息发送到外部环境。 Microsoft 文档此处。
这些方法中有三种对应于 Microsoft“Basic”语言之一的典型方法。它们是:
FireInformation
、FireWarning
和 FireError
。
对于其中每一个,第一个参数是一个代码编号:分别是
informationCode
、warningCode
和 errorCode
。
对于这些代码,我询问以下问题:
VBA.vbObjectError
= &H80040000)对于任何在 SSIS 中做过大量工作的人来说,可能已经知道某些文档有点薄弱,因此任何信息都会有所帮助。
所以基本上...有什么独家新闻?
此代码可以是任何适合 Int32 的值。 建议您将其用作错误级别。 示例代码使用
3
表示信息,使用 14
表示警告,使用 18
表示错误。
/* This script task can fire events for logging purposes.
*
* Example of firing an error event:
* Dts.Events.FireError(18, "Process Values", "Bad value", "", 0);
*
* Example of firing an information event:
* Dts.Events.FireInformation(3, "Process Values", "Processing has started", "", 0, ref fireAgain)
*
* Example of firing a warning event:
* Dts.Events.FireWarning(14, "Process Values", "No values received for input", "", 0);
* */
您可能决定使用一个范围来区分错误和严重错误。 我见过的所有其他示例始终使用
0
,但这取决于您的用例。
出于集成目的,任何错误都足以停止总线以防止数据加载不完整——无论这是数据异常还是系统可用性问题。 对于此类工作,我从不关心代码范围,因为所有错误都同样糟糕。