A instrução ATTACH anexa uma parte de uma árvore de mensagem em uma nova posição na hierarquia de mensagens.
O exemplo a seguir ilustra como utilizar a instrução ATTACH, junto com a instrução DETACH, descrita em Instrução DETACH para modificar uma estrutura de mensagem. A referência dinâmica fornecida para a instrução DETACH deve apontar para uma árvore de mensagens modificável, como Environment, LocalEnvironment, OutputRoot, OutputExceptionList ou InputLocalEnvironment.
Há algumas limitações à utilização de ATTACH. Em geral, os elementos removidos das árvores de saída de um nó Compute poderão não ser anexados ao ambiente ou às árvores de entrada.
<Dados> <Order> <Item>queijo <Tipo>stilton</Tipo> </Item> <Item>pão</Item> </Order> <Order> <Item>alho</Item> <Item>vinho</Item> </Order> </Data>as seguintes instruções 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;resultam na seguinte estrutura de mensagem:
<Dados> <Order> <Item>pão</Item> </Order> <Order> <Item>alho</Item> <Item>vinho</Item> <Item>queijo <Tipo>stilton</Tipo> </Item> </Order> </Data>
Para obter informações sobre referências dinâmicas, consulte Criando Referências de Campos Dinâmicos.