PL/SQL Developer中拼接超长clob字段sql示例

---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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值