Как очистить clob в PL SQL

Создано использование clob

dbms.lob.createTemporary(v_clob,true) 

и пытается бесплатно использовать

dbms.lob.freetemporary(v_clob)

Это не очищает сгусток. Пробовал также empty_clob().

3 ответа

Это должно решить проблему:

v_clob := '';

Я не уверен, что это правильный путь, но мне приходилось инициализировать CLOB в начале каждой итерации цикла. Это сработало для меня:

Dbms_Lob.CreateTever (v_clob, TRUE);

Как насчет того, чтобы сделать что-то вроде ниже. Попробуйте это и проверьте, работает ли он для вас.

DECLARE
   dummy  clob;
   dummy2 clob;
BEGIN
     dummy := empty_clob();
      IF dummy = empty_clob() THEN
         dummy2 := dummy;
      END IF;
END;

Отредактировано: пожалуйста, посмотрите пример. Надеюсь это поможет.

declare
       l_c clob := 'Hello World!';
       l_a number;
     begin

       l_a:=length(l_c);
       dbms_output.put_line( 'The original clob = *' || l_c || '*' );

      --Erase all the data in the clob. Emptying it.
       dbms_lob.erase( l_c, l_a );

       dbms_output.put_line( 'The clob modified now = *' || l_c || '*' );      
     end;
     /
Другие вопросы по тегам