您的位置:首页 > 数据库 > Oracle

PowerBuilder 读写Oracle CLOB 和BLOB的数据

2008-12-07 22:49 816 查看
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类型的字段名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: