现在的位置: 首页 > 综合 > 正文

PowerBuilder 读写Oracle CLOB 和BLOB的数据

2018年02月07日 ⁄ 综合 ⁄ 共 1797字 ⁄ 字号 评论关闭

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类型的字段名

抱歉!评论已关闭.