用OPENXML函数将XML数据转为关联数据
日期:2006年12月31日 作者: 查看:[大字体 中字体 小字体]-
SQL Server 2005中进一步延续了对XML的支持。本文将向我们展示如何用SQL Server提供的OPENXML函数将XML类型数据转换为其它格式的关联数据。
从SQL Server 2000开始,微软开始支持XML类型的数据。在SQL Server2005中,微软延续了这一特性,并加强了对XML 数据列、XML变量以及XML索引的支持。
在数据库中存储XML数据是一个很出色的特征。对于大部分的数据处理需求来讲,将XML数据格式化为其它关联数据是十分重要。这也是引入OPENXML函数的原因。OPENXML是一个SQL Server提供的函数,它的作用是接收XML数据,提供内存中 XML数据的行集视图。
一个OPENXML函数用例
在下面的例子中,我们将演示如何使用OPENXML函数。假定我们现在正在从事一个网上购物系统开发。在这个场景中,顾客选择登录网站方式购买多种产品。因为根据公司的商业模式,通过网站购物能够节省成本。我们假定大部分的顾客都购买了七件或者更多的商品。我们的目标是当客户频繁的访问网站的时候,要尽量减少数据库的调用。我们的想法是将网页上提交的采购需求存储为XML文档,并且将其中的XML数据以字符串的形式传送给数据库底层的程序处理。这样,我们就可以在一次数据库调用中将XML数据中的订单信息插入数据库中。
我们该如何解决上面的问题呢?首先我们看看将要编辑的网页数据。一个简单的XML文档含有来自网站的很多核心信息,包括:产品名称、价格、日期以及顾客资料。列表A包含了一个简单的XML数据流。
然后,我们需要设计一个网页接口提供存储程序的调用。通过调用这一存储程序,将XML数据流存储至数据库。列表B是这一存储程序的实现内容。
这一存储程序支持XML数据类型(SQL Server 2005中新特色)作为输入参数(我们也可以使用变量字符数据类型作为我们的输入参数,例如VARCHAR (max)或者定义VARCHAR数据类型)。
接下来,我们调用系统程序sp_xml_preparedocument,它不仅创建了XML文档在内存中的表示,也允许XML文档作为调用参数。一旦我们拥有了指向内存中XML文档的句柄,就可以调用OPENXML函数。在函数调用中使用不同的参数,还可以对XML数据的返回结果集进行详细的控制。
我们提供指向XML文档的句柄,并且通过XPATH查询返回想要的XML数据中的节点。OPENXML函数中的WITH子句允许指定返回数据的行集格式。一旦将数据插入到websales 表格中,就可以调用系统程序sp_xml_removedocument删除SQL Server 服务器内存中的XML数据。
这个简单的例子演示了通过OPENXML函数来减少数据库调用次数的强大功能。OPENXML函数提供很大的灵活性,你既可以将所有的XML数据插入到SQL Server 数据表中,也可以拆分XML文件,将其插入到不同的SQL Server数据表中。通过这一技术,我们就可以在一次程序调用中插入8条记录,而不是像传统的技术那样,要通过8次操作实现。
OPENXML的局限性
调用OPENXML函数时要注意内存的使用情况。系统程序sp_xml_preparedocument 的返回值是指向内存中XML文档的句柄。所以,你最好不要使用OPENXML加载较大的XML文档,因为那样可能会造成服务器的内存溢出。
在以后的文章中,我将会向你介绍如何使用SQL Server 2005提供的关于XML的一些新属性,这些新属性不仅能够实现OPENXML函数的功能,而且不需要考虑OPENXML调用时产生的内存操作问题。
(出处:急速软件下载学院)
-
- 用OPENXML函数将XML数据转为关联数据 相关文章:
- ·掌握SQL Server数据库的实用技巧
- ·Oracle非法数据库对象引起的错误
- ·SuSE Linux10上安装Oracle数据库方法
- ·sqlldr加载数据到不同表的问题
- ·在不同版本的SQL Server中存储数据
- ·缩小SQL Server数据库的日志文件
- ·SQL Server中导入导出数据的三种方式
- ·.Net中如何连接到ODBC数据源
- ·用SQL链接服务器访问远程Access数据库
- ·利用XMLHTTP无刷新添加数据
- 用OPENXML函数将XML数据转为关联数据 相关软件
- ·《魔兽》地图:冰火攻据战2.1正式版
- ·中兴数据通信产品速查手册V4
- ·数字数据网
- ·数据库营销
- ·李维的新书《Delphi 7高效数据库程序设计》
- ·0racle数据库应用管理解决方案
- ·96sql优化数据仓库解决方案文档合集
- ·电子商务互联网数据库试卷
- ·06年9月等级考试三级数据库技术试题
- ·Access数据库解疑专家
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:塔塔软件公司翻包查询访客遭到质疑
精品推荐
热点TOP10
- ·关于web.xml配置的详细说明
- ·XML Schema定义元素的基本知识
- ·XSL/XML网页制作入门,入门到精通
- ·XML轻松学习手册(三):XML的术语
- ·XML轻松学习手册(一):XML快速入门
- ·用XML+JSP实现网页内容动态显示的方案
- ·自定义应用程序配置文件(app.config)
- ·XML轻松学习手册(二):XML概念
- ·XHTML标签写法应该注意的问题
- ·利用XMLHTTP无刷新添加数据
- ·XHTML教程,简单认识XHTML基础知识
- ·常用的XHTML标签的使用技巧介绍
- ·网页设计学习XHTML应用小结
- ·XHTML 1.0 参考
- ·Xml 串行话对象与反串行实例
- ·XQuery 初学者入门教程:XQuery 术语和语法
- ·XQuery 初学者入门教程:XQuery FLWOR + HTML
- ·XQuery 初学者入门教程:XQuery FLWOR 表达式
- ·分享:XMLHTTPRequest的属性和方法简介
- ·XQuery 初学者入门教程:XQuery实例
