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