Выборка 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)).