在 MRM 域中设置消息中的空值

要设置输出消息中元素的值,通常对 ESQL 语句进行如下编码:

SET OutputRoot.MRM.Elem2.Child1 = 'xyz';  

或对其等价语句进行编码:

SET OutputRoot.MRM.Elem2.Child1 VALUE = 'xyz';  

如果将元素设置为非空值,这两个语句产生的结果相同。然而,如果您要将值设置为空,这两句语句不会产生相同的结果:

  1. 如果您使用以下语句将元素设置为 NULL,则从消息树删除该元素:
    SET OutputRoot.MRM.Elem2.Child1 = NULL;

    输出位流的内容取决于物理格式:

    • 对于 XML 元素,XML 标记或属性和它的值都不会包含在输出位流中。
    • 对于定界 TDS 元素,标记(如果适用)和它的值都不会包含在输出位流中。元素的缺失通常由两个相邻的定界符传递。
    • 对于 CWF 或固定长度 TDS 元素,输出位流的内容取决于您是否已为元素设置缺省值属性。如果您已设置了此属性,缺省值包含在位流中。如果您未设置属性,则发出异常。

    这称为隐式空处理。

  2. 如果您按如下所示将元素的值设置为 NULL:
    SET OutputRoot.MRM.Elem2.Child1 VALUE = NULL;
    将不会从消息树删除元素。而是给元素指派一个特殊的 NULL 值。输出位流的内容取决于物理格式空处理属性的设置。

    这称为显式空处理。

将复杂元素设置为 NULL,会删除该元素及其所有子代。

相关概念
消息流概述
ESQL 概述
消息建模
定制有线格式:NULL 处理
XML 有线格式:NULL 处理
TDS 格式:NULL 处理
相关任务
在 MRM 域中查询消息中的空值
设计消息流
定义消息流内容
管理 ESQL 文件
开发消息模型
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
SET 语句
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac06060_