标签归档:xml

mssql sqlserver xml数据类型存储到数据库的方法分享


摘要:
下文讲述如何将xml字符串存储到数据库中的方法分享,如下所示:
实验环境:sql server 2008 R2



xml文档的简介:

我们将包含xml编码信息的文档称之为“xml文档”。
xml编码:是一种可扩展的标记语言。当我们将一串字符串进行特定设置组合后,就可以形成符合xml规范的代码。
——————————
xml代码由:文档申明、元素、属性、注释、CDATA、特殊字符、处理指令组成。
——————————
xml代码注意事项:
xml代码区分大小写
xml代码不能由数字或下划线“_”开头
xml代码中不能包含空格
xml代码名称中不能出现冒号”:”
——————————
xml属性
xml中的一个元素可以有多个属性,属性都可以拥有相应的属性名称和属性value
xml属性必须使用“单引号” 或“双引号”括起来
——————————
xml 注释:
使用&lt!– 注释内容–&gt
xml代码 最前面是不能包含注释信息
——————————
CDATA
在xml代码中,当我们希望一些字符不被xml引擎解析的时,此时我们需要使用CDATA将此字符包含起来,如下所示:

     ---语法:<![CDATA[内容]]>   ---cdata和内容之间不能出现空格        
    ---例:<![CDATA[
          <maomao>
            <name>maomaoSub</maomaoSub>
          </maomao>
       ]]>
 


xml文档存储到数据库的方法:

方法1:
将xml文档作为一个二进制文件存储至数据库中
方法2:
将xml文档中的xml代码作为一个字符串存储到nvarchar(max)字符串中
方法3:
将xml文档中的xml代码作为一个xml字符串存储到数据库的xml数据类型中

mssql sqlserver 由于服务器内存不足,无法创建XML文档。使用sp_xml_removedocument释放XML文档


摘要:
下文讲述今天使用openquery处理xml文档时,出现内存不足的情况,如下所示:
实验环境:sqlserver 2008 R2



错误信息如下所示:

System.Web.HttpUnhandledException(0x80004005):抛出了类型为“System.Web.HttpUnhandledException”的异常。 – > HRMS.Runtime.Remoting.RemoteServerException:远程服务器生成异常。
< Error >
< Description >无法创建XML文档,因为服务器内存不足。使用sp_xml_removedocument释放XML文档。< / Description >
< / Error >


处理方法:
由于对xml数据处理时,openxml无法扩展,当数据量小于4G时,一切使用正常,当数据量超过4G时,就会出现内存不足的异常提示,
我们只能将处理xml数据的方法采用XQuery的方法对节点值进行查询操作,来跳过OpenXML函数对内存的限制。

备注事项:
无论数据库服务器内存多大,msxml解析器(Msxmlsq.dll)最大可使用内存不会超过4G。