读书人

求存储过程兑现clob字段数据的更新

发布时间: 2012-12-23 11:28:15 作者: rapoo

求存储过程实现clob字段数据的更新,急!


DB2数据库,t_pos_info表有个xml_value字段类型为clob。字段的数据存储的是指定格式的数据,请写个存储过程实现如下要求。

举个例子,xml_value字段的数据如下:


<POS交易清单>
==============================

中国银联直联商户清算交易明细表


商户编号: 30135xxxxx 商户名称: xxx连锁有限公司 收单机构: xxxxx

清算日期: 20111127 生成日期: 20111128




终端编号 交易日期时间 主账号 发卡行 交易金额 商户费用 结算金额

____________________________________________________________________________________________________________________


06102210 1127094859 62109539xxx 邮储银行 38.00 -0.38
##page_1##
06102211 1127133850 62270018xxx xxx分行 40.00 -0.40 39.60

06102211 1127165622 62270018xxx xxx分行 151.10 -1.51 149.59
##page_2##


##page_3_end##
</POS交易清单>



现要对不符合格式的数据进行修改:
最后两页没有数据的节点,把最后一页的那个节点删除,把倒数第二页的节点改为结束节点。

也就是说:

需要遍历表中数据,凡是数据中有<POS交易清单>,那么就读取总页数(页数是节点##page_1##中得数字),然后看倒数两页之间有没有数据,如果有数据,则此条数据不修改,继续下一条数据,如果最后两页之间
无数据,则把最后一页的那个节点删除,把倒数第二页的节点改为结束节点。

比如上面的数据:
把节点##page_3_end##删除,把##page_3_end##改为##page_2_end## 即可。



200分跪求,希望大虾给个实际的方法,急!



[最优解释]
你现在的问题是clob字段读写的问题 还是xml文档操作的问题?

关于操纵lob类型 可以参见 http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.sample.doc/doc/c/s-dtlob-sqc.htm

关于xml文档操作就跟db2无关了

另外,DB2 8.2以后版本增加了对XML字段类型支持以及Xquery的支持,这在操作上比上述处理更加方便了
具体可以查阅该网站
[其他解释]

说错了点,这样修改:
把节点##page_3_end##删除,把##page_3_end##改为##page_2_end## 并且删除##page_2## 。

还要注意,如果最后两个节点之间全部是空格,也要按上要求修改。

也就是说
##page_2##
这中间是空格
##page_3_end##

修改为:
##page_2_end##


读书人网 >IBM DB2

热点推荐