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.
Em um banco de dados, uma linha é um conjunto ordenado e fixo de valores escalares. Um escalar é definido como um único valor de entidade ou uma cadeia.
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 destes elementos, por sua vez, contém três elementos com diferentes nomes e valores. 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. Cada um dos elementos chamados "Row", embora não o elemento-raiz das variáveis ROW, é um elemento-raiz de subestruturas. Muitas operações ESQL (e, particularmente, a função SELECT) trabalham com o conceito geral de ROW e operam igualmente em árvores inteiras ou em partes de árvores.
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, OutputRoot, e assim por diante, são exemplos de variáveis ROW que são declaradas automaticamente e estão presentes na estrutura de dados, prontas para uso.