PL/SQL Developer中打印超长clob字段

---打印超长的clob字符------------------------------------------
declare
  c1 clob;  
  strLog varchar2(2000);--单次输出的临时变量
  loopCount number(5);
begin
  dbms_output.enable(50000);--设置test window 的dbms output 的buffersize
  
  for i in 1 .. 40000 loop
    c1:=c1||'1';
  end loop;  
  
  dbms_output.put_line('length(clob):'||dbms_lob.getlength(c1));
  loopCount:=floor(dbms_lob.getlength(c1)/1000);--按1000分块,看能分多少块
  dbms_output.put_line('loopCount:'||loopCount);
  
  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_output.put_line('finish-----------');
end;

发布了26 篇原创文章 · 获赞 6 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/wangdonghao137/article/details/38705495