ROW コンストラクターは複合関数で、出力メッセージのフィールドに代入される値の行を明示的に生成するために使用できます。
.-<< , <<----------------------------. V | >>-ROW--(----expression--+--------------------+-+--)----------->< '-AS--fieldreference-'
ROW は、一連の名前付きの値から成ります。 それがフィールド参照に代入されると、その一連の名前付きの値が、参照されたフィールドの子フィールドとして作成されます。 配列フィールド参照に ROW を代入することはできません。
SET OutputRoot.XMLNS.Data = ROW('granary' AS bread,
'riesling' AS wine,
'stilton' AS cheese);
これは以下を生成します。
<Data>
<bread>granary</bread>
<wine>riesling</wine>
<cheese>stilton</cheese>
</Data>
<Proof>
<beer>5</beer>
<wine>12</wine>
<gin>40</gin>
</Proof>
この場合、次の ESQL は、 SET OutputRoot.XMLNS.Data = ROW(InputBody.Proof.beer,
InputBody.Proof.wine AS vin,
(InputBody.Proof.gin * 2) AS special);
次の結果になります。 <Data>
<beer>5</beer>
<vin>12</vin>
<special>80</special>
</Data>
この場合、値はフィールド参照から導出されており、これには既に名前があるため、行の各エレメントごとに名前を明示的に指定する必要はないことにご注意ください。ただし、指定することも可能です。