O tipo de dados ROW contém uma estrutura em árvore. Uma linha em um banco de dados é um tipo específico de estrutura em árvore, mas o tipo de dados ROW não está restrito a conter dados de linhas do banco de dados.
Root Row PartNumber = 1 Description = 'Chocolate bar' Price = 0.30 Row PartNumber = 2 Description = 'Biscuit' Price = 0.35 Row PartNumber = 3 Description = 'Fruit' Price = 0.42
No exemplo, Root contém três elementos denominados "Row". Cada um deles, por sua vez, contém três elementos com nomes e valores diferentes. Esse diagrama descreve igualmente uma instância de um tipo de dados de linha ESQL (ou seja, uma estrutura em árvore) ou o conteúdo de uma tabela de banco de dados.
O tipo de dados ROW é um tipo de dados normal. Você pode utilizar a instrução DECLARE para criar variáveis ROW da mesma maneira que cria variáveis INTEGER ou CHARACTER. Também há um conceito mais geral de um tipo de dados ROW. No exemplo anterior, Root é o elemento raiz de uma variável ROW. Os elementos chamados "Row", embora não sejam o elemento raiz de variáveis ROW, são os elementos raiz de subestruturas. Muitas operações ESQL (e, particularmente, a função SELECT) funcionam com o conceito geral de ROW e operam de modo igual em árvores inteiras ou parciais.
Também há um conceito geral de um tipo de dados LIST. O conjunto de elementos chamados "Row" pode ser considerado como uma lista. Algumas operações ESQL (particularmente SELECT) funcionam com o conceito geral de lista.
InputRoot e OutputRoot (e outros) são exemplos de variáveis ROW que são declaradas e conectadas automaticamente à estrutura do intermediário, prontas para o uso.