将XML应用程序从DB2 8.x迁移到Viper
简介 Xryc&
JVx-qbRE
DB2 Universal Database (UDB) Version 8.x 中的 XML 支持基于 DB2 的关系基础设施。在 DB2 Viper 版本之前,XML 数据要么原样存储为字符大对象 (CLOB),要么被分解到关系表中。 FA-_,;5
u<{z?h_/D
yh>Y$O;3
相反,DB2 UDB Version 9.1 具有对 XML 数据的真正本机支持。XML 现在被当作新的数据类型,XML 数据存储在经过解析的带注释的树中,独立于关系数据存储。基于 XML 模式的 XML 索引已经引入,同时还引入了对用于查询和发布 XML 数据的语言 XQuery 和 SQL/XML 的支持。为了理解这些新的 XML 特性对迁移的重大意义,需要将 DB2 8.x 中用于存储和查询 XML 数据的不同技术与 DB2 UDB Version 9 中可用的类似的或新的 XML 功能相比较。 C3K=OC.wc
d)q#[65s
,X,Y>S
本文是关于将 XML 应用程序从 DB2 8.x 迁移到 DB2 Viper 的三篇系列文章中的第一篇。该系列从描述一个基于 Java 的存储过程开始,您可以使用该存储过程来对 XML 数据执行子文档更新。您可以下载更新后的存储过程的源代码和 jar 文件,并根据说明安装它。 2s&qZf~
~J!eq5iF
_my*CLo@
第二篇文章比较 DB2 Version 8.x 中和 DB2 Viper 中的 XML 特性。然后简要讨论 DB2 Viper 中引入的新 XML 特性,并详细介绍新 XML 支持对于迁移现有基于 XML 的应用程序的重大意义。这篇文章还包括基于 Java 的实用工具的源代码,该工具用于帮助生成迁移数据库对象时所需的脚本。 I. + 5
(.R:;fX^
更新存储过程 t6,6]J!
Yx81oe|c
--f 6]
对于本机存储在 DB2 中的 XML 文档,不存在用于执行子文档更新的开箱即用的功能。缺少该功能的原因是,目前还没有定义 Xquery 中更新的标准。 a"4b7
c91w1J1<
8Nj/T6
该问题的一种解决方案是,将文档交给客户机,修改它,然后再将其保存到数据库中。该方法受到客户机环境的 XML 功能的限制,并且还要求专家级的人员编写基于文档对象模型 (DOM) 的客户机。 &)%iLS)
JP3)#*H%&k
!G".r4J
通过创建更新存储过程,可以更新数据库中的 XML 文档而无需将其交给客户机。该存储过程支持对本机存储在数据库中的 XML 文档进行部分更新。 s)<g5@2S<
=dE>ailyy
存储过程允许: m{veL
H1WXqYnP
更改目标 XML 文档中任何文本或属性节点的值 LJJR $!Qy
"9]k*!@YkC
使用另一个 XML 元素替换 XML 文档中的元素节点(及其所有子节点) #]/td&T$l
rb2=|
删除 XML 文档中的节点 uJU.%
.:R*&/oO
插入新元素 UcF-E&un
jQ=XzRR#Y
多次更新源文档 |b;2UU/
V_`]Wf<
更新多个源文档 Ji^U(/^0
vkNz|
使用修改的 XML 文档替换另一个 XML 文档 Z{*/UqH
E10ca_=I
将修改的文档插入新记录 ,qI}\9W8P!
&^-JBO>`
更新信息可以: u%U h3AtE
&xp>N_
.yW(%s$
静态地嵌入更新调用中 jhuTn?kb
fm#pM+l
使用 SQL 在运行时动态地创建 K,wn%P
5Y YmMPFQ
使用算术表达式基于初始文本或属性值进行计算 =! zf1y=?
<$Bql=]?s
注意:在后台,更新存储过程仍然执行完整的文档更新。
JVx-qbRE
DB2 Universal Database (UDB) Version 8.x 中的 XML 支持基于 DB2 的关系基础设施。在 DB2 Viper 版本之前,XML 数据要么原样存储为字符大对象 (CLOB),要么被分解到关系表中。 FA-_,;5
u<{z?h_/D
yh>Y$O;3
相反,DB2 UDB Version 9.1 具有对 XML 数据的真正本机支持。XML 现在被当作新的数据类型,XML 数据存储在经过解析的带注释的树中,独立于关系数据存储。基于 XML 模式的 XML 索引已经引入,同时还引入了对用于查询和发布 XML 数据的语言 XQuery 和 SQL/XML 的支持。为了理解这些新的 XML 特性对迁移的重大意义,需要将 DB2 8.x 中用于存储和查询 XML 数据的不同技术与 DB2 UDB Version 9 中可用的类似的或新的 XML 功能相比较。 C3K=OC.wc
d)q#[65s
,X,Y>S
本文是关于将 XML 应用程序从 DB2 8.x 迁移到 DB2 Viper 的三篇系列文章中的第一篇。该系列从描述一个基于 Java 的存储过程开始,您可以使用该存储过程来对 XML 数据执行子文档更新。您可以下载更新后的存储过程的源代码和 jar 文件,并根据说明安装它。 2s&qZf~
~J!eq5iF
_my*CLo@
第二篇文章比较 DB2 Version 8.x 中和 DB2 Viper 中的 XML 特性。然后简要讨论 DB2 Viper 中引入的新 XML 特性,并详细介绍新 XML 支持对于迁移现有基于 XML 的应用程序的重大意义。这篇文章还包括基于 Java 的实用工具的源代码,该工具用于帮助生成迁移数据库对象时所需的脚本。 I. + 5
(.R:;fX^
更新存储过程 t6,6]J!
Yx81oe|c
--f 6]
对于本机存储在 DB2 中的 XML 文档,不存在用于执行子文档更新的开箱即用的功能。缺少该功能的原因是,目前还没有定义 Xquery 中更新的标准。 a"4b7
c91w1J1<
8Nj/T6
该问题的一种解决方案是,将文档交给客户机,修改它,然后再将其保存到数据库中。该方法受到客户机环境的 XML 功能的限制,并且还要求专家级的人员编写基于文档对象模型 (DOM) 的客户机。 &)%iLS)
JP3)#*H%&k
!G".r4J
通过创建更新存储过程,可以更新数据库中的 XML 文档而无需将其交给客户机。该存储过程支持对本机存储在数据库中的 XML 文档进行部分更新。 s)<g5@2S<
=dE>ailyy
存储过程允许: m{veL
H1WXqYnP
更改目标 XML 文档中任何文本或属性节点的值 LJJR $!Qy
"9]k*!@YkC
使用另一个 XML 元素替换 XML 文档中的元素节点(及其所有子节点) #]/td&T$l
rb2=|
删除 XML 文档中的节点 uJU.%
.:R*&/oO
插入新元素 UcF-E&un
jQ=XzRR#Y
多次更新源文档 |b;2UU/
V_`]Wf<
更新多个源文档 Ji^U(/^0
vkNz|
使用修改的 XML 文档替换另一个 XML 文档 Z{*/UqH
E10ca_=I
将修改的文档插入新记录 ,qI}\9W8P!
&^-JBO>`
更新信息可以: u%U h3AtE
&xp>N_
.yW(%s$
静态地嵌入更新调用中 jhuTn?kb
fm#pM+l
使用 SQL 在运行时动态地创建 K,wn%P
5Y YmMPFQ
使用算术表达式基于初始文本或属性值进行计算 =! zf1y=?
<$Bql=]?s
注意:在后台,更新存储过程仍然执行完整的文档更新。
版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系
editor@qudong.com。
本文价值
★★★★★
—
成为第一个评分的人
登录后为本文打分
评论加载中…