Дать порцию 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;