ATTACH 语句将消息树的一部分连接到消息层次结构中的新位置。
以下示例说明了如何将 ATTACH 语句与DETACH 语句中描述的 DETACH 语句一起使用以修改消息结构。为 DETACH 语句提供的动态引用必须指向可修改消息树,例如 Environment、LocalEnvironment、OutputRoot、OutputExceptionList 或 InputLocalEnvironment。
使用 ATTACH 有一些限制。通常,从 Compute 节点的输出树拆离的元素不可以附加到环境或输入树中。
<Data> <Order> <Item>cheese <Type>stilton</Type> </Item> <Item>bread</Item> </Order> <Order> <Item>garlic</Item> <Item>wine</Item> </Order> </Data>以下 ESQL 语句:
SET OutputRoot = InputRoot; DECLARE ref1 REFERENCE TO OutputRoot.XML.Data.Order[1].Item[1]; DETACH ref1; ATTACH ref1 TO OutputRoot.XML.Data.Order[2] AS LASTCHILD;将得到以下新的消息结构:
<Data> <Order> <Item>bread</Item> </Order> <Order> <Item>garlic</Item> <Item>wine</Item> <Item>cheese <Type>stilton</Type> </Item> </Order> </Data>
关于动态引用的信息,请参阅创建动态字段引用。