---clob拼接------------------------------------------
declare
c1 clob;
c2 clob;
strLog varchar2(2000);--单次输出的临时变量
loopCount number(5);
begin
dbms_output.enable(50000);--设置test window 的dbms output 的buffersize
c1:=c1||'1111';
c2:=c2||'2222';
c1:=c1||c2;--关键sql,c1和c2都是clob字段,二者拼接
dbms_output.put_line('length(clob):'||dbms_lob.getlength(c1));
loopCount:=floor(dbms_lob.getlength(c1)/1000);--按1000分块,看能分多少块
dbms_output.put_line('loopCount:'||loopCount);
if loopCount=0 then
loopCount:=1;
end if;
for i in 0 .. loopCount-1 loop
dbms_output.put_line('loop-----------'||i);
strLog:=substr(c1,i*1000+1,1000);--这里按clob内字符数截取的,每个字符可能是英文字符1byte,也可能是汉字字符2byte
dbms_output.put_line(strLog);
end loop;
--dbms_output.put_line('clob:'||substr(:strlogclob,1,2000));
--注意,测试时要释放clob,但在C#端调用时,要由C#的调用方自行释放
dbms_lob.freetemporary(c1);
dbms_lob.freetemporary(c2);
dbms_output.put_line('finish-----------');
end;
PL/SQL Developer中拼接超长clob字段sql示例
于 2022-05-11 10:31:39 首次发布