首页 文章

使用Xml转义字符的SQL Server 2008 Xml问题

提问于
浏览
1

我们当前的销售点系统在嵌套事务中执行太多查询,从而留下重复或部分数据 . 我将整个事物更改为单个存储过程,其中所有销售项数据作为Xml传递,在临时表中迭代,并保存到数据库,然后提交 . 但是,SQL拒绝xml中的特殊字符 .

例如:

<?xml version="1.0" encoding="utf-16"?>
 <list>
     <item>
         <objectid>bd99fcb6-3031-48b7-9a71-5f8cefe0a614</objectid>
         <amount>50.00</amount>
         <fee>1.50</fee>
         <waivedfee>0.00</waivedfee>
         <tax>0.00</tax>
         <name>TEST &amp; TEST PERSON</name>
         <payeeid>197</payeeid>
         <accountnumber>5398520352</accountnumber>
         <checknumber />
         <comedreceiptnumber />
         <isexpedited>0</isexpedited>
         <echeckrefnumber />
    </item>
</list>

失败 . 它告诉我 &amp; 所在的非法字符 . 我没有't know why. It'与 &amp; 正确逃脱 . 我无法在任何地方找到任何解决方案 . 到处都有人告诉我替换 &amp; - 这正是我在做的!

2 回答

  • 1

    使用 XML PATH('') ,它将为您编码特殊字符 .

    SELECT 'TEST & TEST PERSON' FOR XML PATH('')
    
  • 1

    我想到了 . UTF-16是正确的 . Xml很好 . 最后一块xml,即分类账,只是简单的字符串,没有编码,也没有转义特殊字符 . 一旦我纠正这一切都有效 .

    谢谢您的帮助!

相关问题