Выборка BLOB-данных
Назначение
Выбрать порцию BLOB-данных из текущей записи курсора.
Синтаксис
< выбрать BLOB-данные >::= EXEC SQL [ AT < имя соединения > ] [< номер BLOB-столбца >] BLOB GET INTO:< буфер > [OFFSET :< смещение >] [WHERE CURRENT OF {< имя курсора >| < имя курсорной переменной > }]; < номер BLOB-столбца >::= {< числовой литерал >| < переменная основного языка >} < буфер >::= < переменная основного языка >
Описание
-
< Имя соединения >
определяет соединение, по которому открыт курсор. Значение параметра может быть задано переменной типа «соединение» (DATABASE
) либо символьной константой. В любом случае заданное значение должно быть ранее использовано в оператореCONNECT
. Если параметр < имя соединения > опущен, выборка BLOB-данных выполняется по неименованному соединению. -
Параметр
< номер BLOB-столбца >
задает порядковый номер BLOB-столбца в записи, для которой осуществляется добавление порции BLOB-данных. Нумерация BLOB-столбцов начинается с 1. Если параметр не задан, по умолчанию принимается 1. -
Операция выборки BLOB-данных применима только к текущей записи курсора. Поэтому перед тем, как получить порцию BLOB-значений из заданной записи, необходимо сделать эту запись текущей с помощью оператора
FETCH
. -
Параметр
< буфер >
задает имя переменной основного языка типаCHAR
,BIT
,VARCHAR
,VARBIT
, в которую будет помещена порция BLOB-данных. -
Параметр
< смещение >
определяет имя переменной основного языка, содержащей положительное целочисленное смещение выбираемой порции BLOB-данных относительно начала BLOB-данных. Смещение первого байта BLOB-значения равно 1. Оно принимается по умолчанию, если параметр< смещение >
не задан. -
Параметр
< имя курсора >
задает имя курсора. В нем в качестве текущей записи установлена та, из которой должны выбираться BLOB-данные. -
После выполнения оператора число реально извлеченных байт заносится в глобальную переменную
LenPCI_
. -
Размер запрашиваемой порции BLOB-данных равен размеру переменной типа
CHAR
,BIT
или значению поля len (length для СУБД Ingres) для переменной типаVARCHAR
,VARBIT
. -
Если параметр
WHERE CURRENT OF < имя курсора >
не указан, будет произведена попытка выборки из BLOB-данных, на которые ссылается соединение (путем предварительного исполнения предложения операторомEXECUTE
илиEXECUTE IMMEDIATE SQL
, позиционирующего на запись (SELECT
,UPDATE
,INSERT
)).