Удаление BLOB-значения

Синтаксис

 
clear_blob([< объект >]);

Описание

Функция удаляет BLOB-значение указанного < объекта >, устанавливая его длину в 0. В качестве < объекта > может быть задано BLOB-значение курсора или BLOB-переменная. Удаляемое BLOB-значение курсора должно быть предварительно установлено с помощью функции set_cur_blob, в противном случае исполнение clear_blob() будет иметь неопределенное поведение.

Возвращаемое значение

  1. 0 при успешном завершении (значение типа int).

  2. NULL при ошибке:

    • BADPARAM: неверный параметр функции;

    • NOMEM: недостаточно оперативной памяти.

  3. Код завершения СУБД ЛИНТЕР, который может быть получен с помощью функции errcode().

Примеры

create or replace table D1 (id int, D blob, F blob);
insert into D1 values (1, 'pipe', 'Ivanova');
insert into D1 values (2, 'corner', 'Petrov');
insert into D1 values (3, 'channel', 'Sidorov');

1)
create or replace procedure PRC_CLEAR(in i int) result integer for debug
declare
  var b typeof(D1);//
code
  open b for "select * from D1 where id = ?;", i;//
  set_cur_blob(b,2);//
  CLEAR_BLOB(b);//
  return errcode();//
end;
select lenblob(D) from D1 where id = 1;
|4|
call PRC_CLEAR(1);
select lenblob(D) from D1 where id = 1;
|0|

2)
create or replace procedure PRC_CLEAR2(in i int; in j int) result integer for debug
code
  execute "select * from D1 where id = ?;", i;//
  set_cur_blob(3);//
  clear_blob();//
  return errcode();//
end;
select lenblob(F) from D1 where id = 1;
|7|
call PRC_CLEAR2(1);
select lenblob(F) from D1 where id = 1;
|0|