Доступные версии документации

Дать порцию BLOB-значения

Функция

Дать порцию BLOB-значения.

Спецификация
 
<смещение порции>::=
<размер порции>::=
Синтаксические правила
  1. При выполнении функции BLOB-данные рассматриваются как непрерывный массив байт, т.е. выделение слов игнорируется.

  2. <Смещение порции> – целое неотрицательное значение типа INTEGER, задающее номер байта, с которого начинается порция данных. Отсчет выполняется с 1.

  3. <Размер порции> – целое неотрицательное значение типа INTEGER не больше 4000, задающее размер порции в байтах.

  4. Выбор порции выполняется во всех BLOB-значениях, получаемых в <запросе выборки>.

  5. Аргумент <смещение> может быть задан <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|
Возвращаемое значение
  1. Возвращается строка длиной <размер порции> (для строк с фиксированной длиной) или строка фактической длины (для строк с переменной длиной в случае, если размер BLOB-данных меньше запрошенной порции).

  2. Если размер BLOB-данных меньше запрошенной порции, то возвращаемые строки фиксированной длины дополняются пробелами до запрошенной длины.

  3. Если один из параметров имеет значение NULL или требуемая порция не найдена, возвращается NULL-значение.

  4. Тип возвращаемого значения BYTE, т.е. данные представлены в виде последовательности байт.

  5. Если 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;
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter