PowerBuilder 读取Oracle Clob字段内容

  最近需要用PowerBuilder读取Oracle Clob字段内容,发现直接使用SELECTBLOB读取的数据总是有数据不能完全读取问题。最后我在网上进行了搜罗,发现可以写一个FUNCTION来进行处理: 

1Oracle读取Clob函数,一次可以读取2000个字符: 

create or replace function getclob(
    table_name in varchar2, --
表名
    field_name in varchar2, --CLOB
字段名
    v_tj in varchar2,  --
表查询条件
    v_pos in number –
字符起始位置)

  return varchar2 is  
    buffer varchar2(32767);
    lobloc  clob;   
    amount number := 2000;
      query_str varchar2(1000);
    begin
query_str :='select '||field_name||' from '||table_name||' where '||v_tj||'';
      --initialize buffer with data to be found
      EXECUTE IMMEDIATE query_str INTO lobloc ;
      --read 2000 varchar2 from the buffer
      dbms_lob.read(lobloc,amount,v_pos+1,buffer);
      return buffer;
      exception
        when no_data_found then
        return buffer;
        end;

2PowerBuilder采用循环读取CLOB字段的所有内容: 

String ls_temp,ls_data,ls_data1

ls_temp = " blbh="+String(ll_blbh)+" and blym= "+String(li_blym)


SELECT dbms_lob.getlength(html) INTO :ll_len FROM ys_zy_bl_html Where blbh = :ll_blbh AND blym = :li_blym;


Long i

i = 1 

DO

//调用ORACLE的函数GetClob
 SELECT getclob('ys_zy_bl_html','html',:ls_temp,:i ) INTO :ls_data FROM dual;
 
 ls_data1 = ls_data1 + ls_data 
 ll_len = ll_len - 2000 
 i = i + 2000 
LOOP WHILE ll_len >= 0 

注:ll_blbh, li_blymPowerBuilder变量。

简单吧,ls_data1就是需要读取的CLOB字段的全部内容。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值