日期:2014-05-16  浏览次数:20526 次

如何用存储过程读取CLOB类型的字段


有三种方法解决上面的错误。
第一, value内容删减。
第二, value类型clob,修改成其他类型。如:varchar2
第三, 如下图。



顺便贴一下相关代码:
create or replace procedure get_news
as   
v_varchar VARCHAR2(1000);   
v_start PLS_INTEGER := 1;   
v_buffer PLS_INTEGER := 1000;
begin
  dbms_output.enable(1000000);  
  for rec in (select test,name,value from test) loop
    FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(rec.value) / v_buffer) LOOP
      dbms_output.put_line('value是CLOB类型,从'||v_start||'起获取:'||DBMS_LOB.SUBSTR(rec.value, v_buffer, v_start));  
      v_start := v_start + v_buffer;  
    end loop;
  end loop;    
end;