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>
動的参照については、動的フィールド参照の作成を参照してください。