频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

查询包含名称空间的XML数据

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组

  如果在查询中为 @type 属性指定一个名称空间,如清单 27 所示,那么示例 XML 文档中没有符合条件的文档。在这种情况下,DB2 不返回记录:

  清单 27. 经过修改的 XQueryxquery declare namespace c="urn:xmlns:saracco-sample:company1.0";
for $x in db2-fn:xmlcolumn('PARTNERS.DETAILS')/c:company
where $x/@c:type="public"
return $x/c:name %

  如果要使用 SQL/XML 来检索公开招股公司的名称,那么可以编写一个如下所示的查询:

  清单 28. 与清单 25 中显示的 XQuery 等效的 SQL/XMLselect xmlquery('declare namespace x="urn:xmlns:saracco-sample:company1.0";
$c/x:company/x:name' passing details as "c")
from partners
where xmlexists('declare namespace x="urn:xmlns:saracco-sample:company1.0";
$c/x:company[@type="public"]' passing details as "c") %

  案例 9:将 XML 数据转换成关系数据

  最后,如何将包含名称空间的 XML 数据转换成关系数据?很多已有的应用程序和商业工具(例如查询/报告编写器)可以用来使用存储在 VARCHAR、INT、DATE 等传统数据类型的列中的数据。因此,程序员可以使用 SQL/XML() 函数动态地将 XML 数据转换成更传统的 SQL 数据类型。

  当然,原始 XML 数据中存在的名称空间将对如何编写那样的 “转换” 查询造成一定的影响。考虑下面的例子,该查询检索关于业务伙伴的信息,它的 status 必须为 “Silver”,它的公司数据必须与一个给定的名称空间相关联。该查询返回公司的 ID 和名称,以及公司联系人的姓名和电子邮件地址。

更多文章 更多内容请看SQL Server 索引和查询专题XML详解开发应用专题,或进入讨论组讨论。
更多专题 【深 度 阅 读】 相 关 文 章
    收藏此文】【 】【打印】【关闭
    相关图文阅读
    频道图文推荐
    健 康 咨 询
    时 尚 咨 询
    巧巧读书宗旨
    相关专题
    讨论组问题推荐
    站内各频道最新更新文档
    站内最新制作专题
    热门关键字导读
    Photoshop教 程照片处理 照片制作 PS快捷键 抠图
    计 算 机 故 障XP系统修复
    艺 术 与 设 计设计 流媒体 设计欣赏 边框
    计 算 机 安 全ARP
    站内频道文章精选
    巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章