Доступные версии документации

Массивы данных

Назначение

Массивы данных используются для пакетного приема/передачи данных (см. подраздел Исполнение заранее подготовленных предложений).

Массивы с фиксированной длиной элементов

Синтаксис
<массив с фиксированной длиной элементов>::=
  <числовой массив> | <строковый массив>
<числовой массив>::=
{long | short | float |double | int | decimal | date} <имя><размер>
<строковый массив>::=
  <строковый массив фиксированной длины>
  | <строковый массив переменной длины>
<строковый массив фиксированной длины>::=
{char | bit}<имя> <размер1> [<размер2>] <длина элемента>
<имя>::=переменная основного языка
<размер1>::='['<значение>']'
<размер2>::='['<значение>']'
<длина элемента>::='['<значение>']'
<значение>::=целое положительное число

Массивы с переменной длиной элементов

С переменной длиной элементов массива могут быть только строковые и байтовые массивы.

Объявление этих массивов возможно двумя способами: в стиле СУБД ЛИНТЕР или в стиле СУБД Ingres. Смешение стилей в одном исходном тексте модуля основного языка не допускается.

1 способ (в стиле СУБД ЛИНТЕР)

<массив с переменной длиной элементов>::=
{VARCHAR | VARBIT}
<имя> <размер1> [<размер2>] <длина элемента>

2 способ (в стиле СУБД Ingres)

{[VARCHAR]|VARBIT} struct
{
short length;
char text<длина элемента>;
} <имя><размер1> [<размер2>];

<имя>::=переменная основного языка
<размер1>::='['<значение>']'
<размер2>::='['<значение>']'
<длина элемента>::='['<значение>']'
<значение>::= целое положительное число
Описание
  1. <Длина элемента> задает максимальный размер элемента массива.

  2. VARCHAR, VARBIT – тип данных элемента массива. Объявление этих массивов возможно двумя способами: в стиле СУБД ЛИНТЕР или в стиле СУБД Ingres. Смешение стилей в одном исходном тексте модуля основного языка не допускается.

  3. В случае объявления в стиле СУБД ЛИНТЕР массивы транслируются в виде:

    • VARCHAR[n]][m]:

      struct
       { short len;
        char arr[m];
       } <имя>[n];
    • VARBIT [n][m]:

      struct
       { short len;
       unsigned char arr[m];
       } <имя>[n];
  4. В случае объявления в стиле СУБД Ingres массивы транслируются в виде:

    • VARCHAR[n]][m]:

      struct
       { short length;
       char text[m];
       }<имя>[n]
    • VARBIT [n][m]:

      struct
       { short length;
       unsigned char text[m];
       }<имя>[n]
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter