PowerBuilder 读写Oracle CLOB 和BLOB的数据

1、更新操作:

//==============================================================================
// 函数: w_record_editor::wf_savehtml()
//------------------------------------------------------------------------------
// 描述: 保存HTML到数据库中
//------------------------------------------------------------------------------
// 参数:
//  value string as_html  
//------------------------------------------------------------------------------
// 返回值:  integer
//------------------------------------------------------------------------------
// 作者: Cao Kun  日期: 2008.12.07
//------------------------------------------------------------------------------
// 修改历史:
// 
//==============================================================================

Integer li_Count,li_Page
String ls_err
Blob   lb_Html

li_Page = uo_pager.getpage()

SELECT COUNT(1) INTO :li_Count FROM YS_ZY_BL_HTML Where BLBH = :il_blbh AND BLYM = :li_Page;

IF li_Count > 0 AND NOT ib_html THEN RETURN 0

 

//这里将String类型转换为BLOB

lb_html = blob(as_html)

 

gf_begin_Transaction(sqlca)

IF li_Count > 0 THEN 
 

//请注意不管是BLOB还是CLOB都采用UPDATEBLOB
 UPDATEBLOB YS_ZY_BL_HTML Set HTML = :lb_html Where BLBH = :il_blbh AND BLYM = :li_Page;
 
 IF sqlca.SQLCode <> 0 THEN
  ls_err = sqlca.SQLErrText
  gf_rollback_Transaction(sqlca)
  
  MessageBox("提示","保存HTML错误"+ls_err)
  RETURN -1
 END IF
 
ELSE
 
 
 INSERT INTO YS_ZY_BL_HTML (BLBH,BLYM,HTML) Values (:il_blbh,:li_Page,'abc');
 
 UPDATEBLOB YS_ZY_BL_HTML Set HTML = :lb_html Where BLBH = :il_blbh AND BLYM = :li_Page;
 
 IF sqlca.SQLCode <> 0 THEN
  ls_err = sqlca.SQLErrText
  gf_rollback_Transaction(sqlca)
  
  MessageBox("提示","保存HTML错误"+ls_err)
  RETURN -1
 END IF
END IF

gf_commit_Transaction(sqlca)

ib_html = FALSE

RETURN 0

 

2、查询操作:采用SELECTBLOB命令,在Powerbuilder 帮助中可以查询具体的用法。

 

3、在Oracle 中查询CLOB字段的占用空间,采用以下命令:

select b.Bytes from user_lobs a, user_segments b where
 a.segment_name = b.segment_name;
也可以采用以下方式:

select dbms_lob.getlength(html) from ys_zy_bl_html;

 

请注意html是CLOB类型的字段名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值