O construtor ROW é uma função complexa utilizada explicitamente para gerar linhas de valores, que podem ser designados a campos em uma mensagem de saída.
.-<< , <<----------------------------. V | >>-ROW--(----expression--+--------------------+-+--)----------->< '-AS--fieldreference-'
Uma ROW consiste em uma seqüência de valores denominados. Quando designada a uma referência de campo, ela cria essa seqüência de valores denominados como campos filhos do campo referido. Uma ROW não pode ser designada a uma referência de campo de matriz.
SET OutputRoot.XMLNS.Data = ROW('granary' AS bread,
'riesling' AS wine,
'stilton' AS cheese);
produz:
<Data>
<bread>granary</bread>
<wine>riesling</wine>
<cheese>stilton</cheese>
</Dados>
<Proof>
<beer>5</beer>
<wine>12</wine>
<gin>40</gin>
</Prova>
o seguinte ESQL: SET OutputRoot.XMLNS.Data = ROW(InputBody.Proof.beer,
InputBody.Proof.wine AS vin,
(InputBody.Proof.gin * 2) AS special);
produz o seguinte resultado: <Data>
<beer>5</beer>
<vin>12</vin>
<special>80</special>
</Dados>
Como os valores neste caso são derivados de referências
de campos que já possuem nomes, não é necessário fornecer
explicitamente um nome para cada elemento da linha, mas você pode
optar por isso.