Добавление данных в конец 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-столбца >.
Возвращаемое значение
Функция возвращает код завершения СУБД ЛИНТЕР.