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