varchar2类型虽然有长度限制,但是你可以分段读取CLOB列的数据。
要用到dbms_lob包。用一个循环调用dbms_lob.read。
declare
v_text varchar2(32767);--每次读取的数据
v_lob clob;
amt binary_integer:=32767;--每次读取的字节数
pos integer:=1;--读取位置
begin
select CLOB列 into v_lob where.....;
loop
dbms_lob.read(v_lob,amt,pos,v_text);
pos:=pos+amt;
.........
end loop;
exception when no_data_found then null; --退出循环
end;