sql-server - SSIS 中的优先约束未按预期工作
问题描述
SSIS 中的优先约束未按预期工作。我不确定我错过了什么?
预期结果:如果表达式不为真,则不应执行下一个任务,但在这种情况下,包会执行下一个组件(加载日期)并失败,因为在 DFT 中传递了 NULL 值。如果表达式不评估 True,我想停止执行。
插入消息表达式"-- ISNULL(@[User::vEndActivityDateTime]) || @[User::vEndActivityDateTime] =="0000-00-00 00:00:00.0000000
"获取最后日期约束表达式" -- !ISNULL(@[User::vEndActivityDateTime] ) || @[用户::vEndActivityDateTime] != "0000-00-00 00:00:00.0000000"
解决方案
SSIS 变量不支持 null 因此该ISNULL
函数在这里不起作用。看起来您想使用默认值 0000-00-00 00:00:00.0000,但这不是 SSIS 日期时间变量数据类型的有效值。我建议选择另一个永远不会出现在您的数据中的值作为默认值。在下面的示例中,使用了 1900-01-01。您可以将其设置为 1900-01-01 00:00:00.0000,但它会恢复,因为无论哪种方式,默认值都是相同的。可以在变量窗格的值列中设置变量的默认值(您不需要使用它旁边的表达式列),然后设置优先约束以使用如下表达式检查此默认值。
优先约束表达式:
@[User::vEndActivityDateTime] != (DT_DBTIMESTAMP)"1900-01-01 00:00:00.0000"
推荐阅读
- batch-file - cp 别名的 Windows BAT 脚本产生错误
- python - 指数移动平均线(ema)与币安不同
- batch-file - 使用批处理文件移动多个文件夹
- javascript - 如何将localstorage变量设置为函数
- reactjs - 如何处理reactjs中img标签上的错误
- c++ - Qtcharts 不渲染数据
- java - 使用 Arrays.asList 中的 get() 时的 NPE - 列表
- jq - 使用带有包含的jq查询时如何从aws cli获取唯一值
- android - 如何使用 mvvm 从 kotlin android 的哈希图中的对象中获取值
- typescript - 为什么索引签名参数类型不能扩展字符串或数字?