使用 IBM DB2 pureXML 和 ASP.NET 开发一个商店定位器应用程序
2010-02-25 00:00:00 来源:WEB开发网清单 3 中的代码创建了一个名为 store_view 的视图,该视图有几列,所有的列(除了 store_id 列)都映射到 info 列中包含的 XML 文档中的一个元素。这要归功于 XMLTABLE 函数,它支持使用 XPath 表达式将 XML 元素和属性映射到关系列。执行这段代码将返回一条熟悉的消息:DB20000I The SQL command completed successfully。
接下来,创建第二个视图,即 store_hours_view。在前一个视图中,您可能注意到,XML 元素 hours 没有映射到关系列。要映射它们,需要为 <hours> 节点的每个子元素都创建一个单独的列,这不仅意味着从这些列创建一个视图非常繁琐,还意味着使用 SQL 从视图检索数据需要做更多工作。相反,更简单的方法是创建一个单独的视图,其中每一天都存储在单独一行。清单 4 展示了创建这个视图的代码。
清单 4. 创建 store_hours_view DB2 视图
create view store_hours_view(
store_id, day, hours
) as
select s.store_id, x.*
from store s, xmltable('$d/store/hours/day' passing s.info as "d"
columns
day varchar(20) path '@name',
hours varchar(50) path '.'
) as x
这一次,您创建的视图将为每个商店的一周的每一天包含单个行。每一行将包含 store_id,名称(位于每个 <day> 元素的 name 属性中)和小时。同样,运行这段代码将收到一个成功响应。在下一小节中,将了解如何把数据从一系列 XML 文件加载到数据库中,然后测试本小节中创建的视图是否返回正确的数据。
从一系列 XML 文件导入数据
要将 XML 数据导入数据库,需要在本教程的 源代码 中找到 xml 文件夹,将其复制到方便使用的位置。我将该文件夹复制到我的 C: 盘并将其重命名为 storeloc。这个文件夹包含一系列 XML 文件和一个名为 location.del 的文件。如果用您喜欢的文本编辑器打开 location.del,您将注意到该文件包含几行,每行都进行了编号并引用文件夹中的其他 XML 文件。现在,使用这个文件将对应 XML 文件的内容导入 DB2 数据库。
更多精彩
赞助商链接