如果您想要将元素与 NULL 作比较,对语句编码:
IF InputRoot.MRM.Elem2.Child1 IS NULL THEN
DO:
-- more ESQL --
END IF;
如果该元素允许为空,则该语句测试元素是否存在于输入消息中,或者它是否存在并包含 MRM 提供的空值。该测试的行为取决于物理格式:
- 对于 XML 元素,如果 XML 标记或属性不在位流中,此测试返回 TURE。
- 对于 XML 元素,如果 XML 标记或属性在位流中并包含 MRM 空值,此测试返回 TURE。
- 对于 XML 元素,如果 XML 标记或属性在位流中并且不包含 MRM 空值,此测试返回 FALSE。
- 对于定界 TDS 元素,如果元素在前一个定界符和它的定界符之间没有值,此测试返回 TURE。
- 对于定界 TDS 元素,如果元素在前一个定界符和它的定界符之间有一个值,且该值与 MRM 定义的空值相同,此测试返回 TURE。
- 对于定界 TDS 元素,如果元素在前一个定界符和它的定界符之间有一个值,且该值不是 MRM 定义的空值,此测试返回 FALSE。
- 对于 CWF 和定长 TDS 元素,如果元素的值与 MRM 定义的空值相同,此测试返回 TURE。
- 对于 CWF 和定长 TDS 元素,如果元素的值与 MRM 定义的空值不同,此测试返回 FALSE。
如果您想要确定字段是否丢失,不是出现而是空值,您可以使用 ESQL CARDINALITY 函数。