Выборка BLOB-данных

Назначение

Выбрать порцию BLOB-данных из текущей записи курсора.

Синтаксис

 
<​выбрать BLOB-данные​>::=
EXEC SQL [ AT <​имя соединения​> ] [<​номер BLOB-столбца​>]
  BLOB GET INTO:<​буфер​>
  [OFFSET :<​смещение​>]
  [WHERE CURRENT OF {<​имя курсора​>| <​имя курсорной переменной​> }];
  <​номер BLOB-столбца​>::= {<​числовой литерал​>| <​переменная основного языка​>}
  <​буфер​>::= <​переменная основного языка​>

Описание

  1. <​Имя соединения​> определяет соединение, по которому открыт курсор. Значение параметра может быть задано переменной типа «соединение» (DATABASE) либо символьной константой. В любом случае заданное значение должно быть ранее использовано в операторе CONNECT. Если параметр <​имя соединения​> опущен, выборка BLOB-данных выполняется по неименованному соединению.

  2. Параметр <​номер BLOB-столбца​> задает порядковый номер BLOB-столбца в записи, для которой осуществляется добавление порции BLOB-данных. Нумерация BLOB-столбцов начинается с 1. Если параметр не задан, по умолчанию принимается 1.

  3. Операция выборки BLOB-данных применима только к текущей записи курсора. Поэтому перед тем, как получить порцию BLOB-значений из заданной записи, необходимо сделать эту запись текущей с помощью оператора FETCH.

  4. Параметр <​буфер​> задает имя переменной основного языка типа CHAR, BIT, VARCHAR, VARBIT, в которую будет помещена порция BLOB-данных.

  5. Параметр <​смещение​> определяет имя переменной основного языка, содержащей положительное целочисленное смещение выбираемой порции BLOB-данных относительно начала BLOB-данных. Смещение первого байта BLOB-значения равно 1. Оно принимается по умолчанию, если параметр <​смещение​> не задан.

  6. Параметр <​имя курсора​> задает имя курсора. В нем в качестве текущей записи установлена та, из которой должны выбираться BLOB-данные.

  7. После выполнения оператора число реально извлеченных байт заносится в глобальную переменную LenPCI_.

  8. Размер запрашиваемой порции BLOB-данных равен размеру переменной типа CHAR, BIT или значению поля len (length для СУБД Ingres) для переменной типа VARCHAR, VARBIT.

  9. Если параметр WHERE CURRENT OF <​имя курсора​> не указан, будет произведена попытка выборки из BLOB-данных, на которые ссылается соединение (путем предварительного исполнения предложения оператором EXECUTE или EXECUTE IMMEDIATE SQL, позиционирующего на запись (SELECT, UPDATE, INSERT)).