Дать порцию BLOB-значения
Функция
Дать порцию BLOB-значения.
Спецификация
::=
::=
::=
Синтаксические правила
-
При выполнении функции BLOB-данные рассматриваются как непрерывный массив байт, т.е. выделение слов игнорируется.
-
< Смещение порции >
– целое неотрицательное значение типа INTEGER, задающее номер байта, с которого начинается порция данных. Отсчет выполняется с 1. -
< Размер порции >
– целое неотрицательное значение типа INTEGER не больше 4000, задающее размер порции в байтах. -
Выбор порции выполняется во всех BLOB-значениях, получаемых в
< запросе выборки >
. -
Аргумент
< смещение >
может быть задан< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.create or replace table test(bl blob); insert into test values(null); blob insert column=1 333333ABCDc0ff4532; select getblob(bl, ? (int), 5) from test; 7 5 | FF 45 32 AB CD|
Возвращаемое значение
-
Возвращается строка длиной
< размер порции >
(для строк с фиксированной длиной) или строка фактической длины (для строк с переменной длиной в случае, если размер BLOB-данных меньше запрошенной порции). -
Если размер BLOB-данных меньше запрошенной порции, то возвращаемые строки фиксированной длины дополняются пробелами до запрошенной длины.
-
Если один из параметров имеет значение NULL или требуемая порция не найдена, возвращается NULL-значение.
-
Тип возвращаемого значения BYTE, т.е. данные представлены в виде последовательности байт.
-
Если BLOB-данные имеют NULL-значение, возвращается NULL-значение.
Примеры
SELECT FName, GETBLOB(TextBlob,1,60) FROM fb ORDER BY FName; SELECT GETBLOB (ArticleText,FINDBLOB(ArticleText, 'Russian', 1), 32) AS FirstWord GETBLOB (ArticleText, FINDBLOB(ArticleText, 'Russian', COUNTBLOB(ArticleText, 'Russian')), 32) AS LastWord FROM Da WHERE COUNTBLOB(Da.ArticleText, 'Russian') >0;