Добавление данных в конец BLOB-значения
Синтаксис
add_blob([<курсор>,] <значение>[, <размер>][, <номер BLOB-столбца>]);
<курсор> – курсорная переменная;
<значение> – переменная типа BYTE/VARBYTE или значение любого другого скалярного типа;
<размер> – целочисленное положительное выражение;
<номер BLOB-столбца> – порядковый номер BLOB-столбца в текущей записи выборки данных, отсчёт начинается с 1.
Описание
Функция добавляет порцию данных в конец BLOB-значения заданного BLOB-столбца текущей записи.
Параметр <значение> определяет добавляемую порцию данных.
Возможны два случая:
-
если это переменная типа BYTE, то в качестве порции данных берется соответствующая последовательность байт, указанная в параметре
<размер>длины. Это самый общий способ, так как он позволяет записывать любые данные; -
если
<значение>– это выражение других типов, то к BLOB-значению добавляется двоичное представление порции данных для конкретной машины. В частности, значения типа DATE записываются как два четырехбайтовых числа (типа INT), первое из которых содержит количество дней, прошедших с начала нашей эры, а второе – количество тиков (сотых долей секунды), прошедших с начала дня (именно так представляются значения типа DATE внутри подсистемы хранимых процедур). Значения типа CHAR и VARCHAR записываются как два байта длины строки, два байта кодировки и соответствующее количество байт самой строки после них. В этом случае длину порции данных указывать не требуется, так как она известна. Для значений типа NCHAR и NVARCHAR запись аналогична, за исключением двух байт кодировки. Они отсутствуют, так как для данных типов она по умолчанию UTF-16.
Примечания
-
В обоих случаях, если длина переменной
<значение>больше длины, указанной в параметре<размер>, то добавляемая порция данных будет обрезана до заданной в параметре<размер>длины; если меньше – дополнена нулями. -
Все данные, добавленные в BLOB-значение, могут быть адекватно считаны с помощью функций чтения read_blob.
Параметр <размер> можно определить только для типа BYTE.
Для всех остальных типов поле <размер> интерпретируется как <номер BLOB-столбца>.
Возвращаемое значение
Функция возвращает код завершения СУБД ЛИНТЕР.