批量拆分XML文档示例

日期: 2010-01-13 作者:Matthias NicolaPav Kumar-Chatterjee翻译:冯昀晖 来源:TechTarget中国 英文

Linux,UNIX和Windows版本的DB2 9.7版引入了一个新的存储过程叫做“XDB_DECOMP_XML_FROM_QUERY”。它利用带有Annotations标记的schema来分解一个或者多个从类型为“XML”,“BLOB”或者“VARCHAR FOR BIT DATA”的列选择出来的XML文档。它与存储过程“XDBDECOMPXML”的主要差异在于,“XDB_DECOMP_XML_FROM_QUERY”把SQL查询看作参数,并可以执行它来从DB2表中获取输入文档。对于大数量的文档,“LOAD”操作是批量进行分解的,它比对每个文档依次调用存储过程分别分割效率更高。

图11.14展……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Linux,UNIX和Windows版本的DB2 9.7版引入了一个新的存储过程叫做“XDB_DECOMP_XML_FROM_QUERY”。它利用带有Annotations标记的schema来分解一个或者多个从类型为“XML”,“BLOB”或者“VARCHAR FOR BIT DATA”的列选择出来的XML文档。它与存储过程“XDBDECOMPXML”的主要差异在于,“XDB_DECOMP_XML_FROM_QUERY”把SQL查询看作参数,并可以执行它来从DB2表中获取输入文档。对于大数量的文档,“LOAD”操作是批量进行分解的,它比对每个文档依次调用存储过程分别分割效率更高。图11.14展示了这个存储过程的参数。“commit_Count”参数和“allow_access”参数是输出参数,提供批量分割过程的结果信息。所有参数都在表11.8中有介绍说明。

  图11.14 存储过程“XDB_DECOMP_XML_FROM_QUERY”。

  表11.8 存储过程“XDB_DECOMP_XML_FROM_QUERY”的参数。

  图11.15展示了在CLP中一次存储过程“XDB_DECOMP_XML_FROM_QUERY”的调用过程。这个存储过程调用读取“customer”表“info”列中的所有XML文档,并用Annotations标记XML Schema“db2admin.cust2xsd”把他们分割。该存储过程每25个文档提交一次,即使有文档没有被分割成功的话,也不会停止执行。

  图11.15 调用存储过程“SYSPROC.XDB_DECOMP_XML_FROM_QUERY”。

  如果你需要频繁地在CLP中执行批量分割,那就使用命令“DECOMPOSE XML DOCUMENTS”,而不要使用存储过程。使用命令行更方便,而且与存储过程“XDB_DECOMP_XML_FROM_QUERY”执行的是相同的任务。图11.16列出了该命令的语法。该命令的各种从句和关键字与相应的存储过程参数意义相同。例如:“query”是提供这些输入文档的查询语句,而“xml-schema-name”是两部分Annotations标记XML Schema的SQL识别符。

  图11.16 “DECOMPOSE XML DOCUMENTS”命令的语法。

  图11.17 介绍了DB2命令行处理器(CLP)中的“DECOMPOSE XML DOCUMENTS”命令。

  图11.17 “DECOMPOSE XML DOCUMENTS”命令的示例。

  如果你不指定“message-file”,那么错误报告会被写到标准输出。图11.18列出了一个错误报告示例。对于每一个分割失败的文档,错误报告会显示出该文档的识别符(xdb:documented)。这个识别符是从“DECOMPOSE XML DOCUMENTS”SQL语句产生的在第一列中获得的。错误报告还包括每一个分割失败的文档的DB2错误信息。图11.18显示:文档1002包含了一个意料之外的XML属性调用状态,而文档1005包含一个无效的元素或者属性值“abc”,因为该XML Schema预期找到一个类型为“xs:integer”的整数值。

  图11.18 批量分割XML文档的错误报告示例。

相关推荐