使用sql server的时候,免不了与xml的参数打交道,xml大多数时候都给我们的程序带来方便,但是也有些时候会有变量赋值不通过的时候。(当然罗,如果你本身xml都通不过 xml spy 之类软件的检查的话那就不是这方面的范围啦~)

今天分享的例子非常简单,就测试几个例子

DECLARE @x XML  

--
SELECT @x =
'<a>1</a>'
--
SELECT @x =
'<?xml version="1.0" encoding="utf-8"?>
<a>1</a>
'
--
SELECT @x =
N'<?xml version="1.0" encoding="utf-8"?>
<a>1</a>
'
--
SELECT @x =
'<?xml version="1.0" encoding="utf-8"?>
<a>一个人</a>
'
--
SELECT @x =
'<?xml version="1.0" encoding="GBK"?>
<a>单身狗汪</a>
'

例子1 :

我们平常见到最多的例子,编译通过无压力。变量赋值通过,随后查询,解析,随你的便~

例子2:

编译也是通过的,貌似这个是最容易引起误会的地方,我之前一直以为sql server 里面的赋值是不支持带

<?xml version="1.0" encoding="utf-8"?>

这种头部的 ,所以平时跟coder说如果出现这种错误,把头部去掉就好了(确实会好,只是原因搞错了(⊙﹏⊙)b)。其实本身xml 类型是支持的,只是我们调用存储过程或者语句里面的参数赋值的时候应用的场景问题而已。sql server表示这锅我不背

例子3:

这个例子编译就有问题了,编译器就抛出

消息 9402,级别 16,状态 1,第 8 行
XML 分析: 行 1,字符 38,无法切换编码

然而例子3和例子2 的差别就是 例子3 的赋值使用了 unicode 的编码方式而例子2并没有这样干,所以例子3 瞬间就跪了╮(╯_╰)╭。所以我们平时发现的数据库传参报错是因为使用了这种方式进行,所以我就一直被忽悠了_(:з」∠)_。所以并不是不支持,只是我们的调用方式有问题

例子4:

消息 9420,级别 16,状态 1,第 9 行
XML 分析: 行 2,字符 5,非法的 xml 字符

咦~又报错啦~这次是非法xml 字符,看起来就是编码是utf-8 的这种不支持中文咯。所以有时候这些细节不注意就真是……/(ㄒoㄒ)/~~

例子5:

编译顺利通过,这次将里面的编码换成GBK编码,就可以支持中文啦。当然编译也是完全没问题罗。

补充另外一个例子

SELECT @x =
'<?xml version="1.0" encoding="GBK"?>
<a>繁体字 龍 _(:з」∠)_</a>
'

也是ok的,一些繁体字在GBK的字库里面也是可以支持,一般也不一定需要纠结这个问题。除非一些特殊符号,就难说了呵呵哒

最后,encoding="utf-8" 和 encoding="UTF-8" 是等价的,在这里并没有区分大小写。注意是在这里……

今天就分享了这个小例子~如果有什么不对,肯定指正

测试几个xml的问题的更多相关文章

  1. selenium测试框架使用xml作为对象库

    之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...

  2. 07.基于IDEA+Spring+Maven搭建测试项目--logback.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 控制台日志 ...

  3. LR 测试http协议xml格式数据接口

    Action() { lr_start_transaction("T1"); web_custom_request("xxxxHTTPRequest", &qu ...

  4. 06.基于IDEA+Spring+Maven搭建测试项目--dubbo-consumer.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. 04.基于IDEA+Spring+Maven搭建测试项目--application-context.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. 05.基于IDEA+Spring+Maven搭建测试项目--web.xml配置

    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " ...

  7. 【RF库XML测试】parse xml

    Name:Parse XmlSource:XML <test library>Arguments:[ source | keep_clark_notation=False ]Parses ...

  8. python webdriver 测试框架-数据驱动xml驱动方式

    数据驱动xml驱动的方式 存数据的xml文件:TestData.xml: <?xml version="1.0" encoding="utf-8"?> ...

  9. 测试单点登录xml配置

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...

随机推荐

  1. C#设置文件权限

    在开发中,我们经常会使用IO操作,例如创建,删除文件等操作.在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行设置,这样的操作可能会手动操作,现在介绍一种采用代码动态对文件 ...

  2. C# 将内容写入txt文档

    <1>  FileStream fs = new FileStream(@"D:\text.txt", FileMode.Append); StreamWriter s ...

  3. OpenCV2:特征匹配及其优化

    在OpenCV2简单的特征匹配中对使用OpenCV2进行特征匹配的步骤做了一个简单的介绍,其匹配出的结果是非常粗糙的,在这篇文章中对使用OpenCV2进行匹配的细化做一个简单的总结.主要包括以下几个内 ...

  4. jQuery-1.9.1源码分析系列(一)整体架构

    不废话,直接上关键.这个系列中有好些直接借用别人的资料,我将他们整合在自认为比较合理的地方.所以在此先谢谢那些前辈. 注意:后续系列中jQuery实例多用$(...)来表示 1.    初始化与链式调 ...

  5. Django 1.10 中文文档------3.2.2 查询操作making queries

    3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...

  6. CClayer ignoreAnchorPointForPosition 参数的作用

    ignoreAnchorPointForPosition:忽略锚点对于位置的设定.即非位置的设定(比如说缩放),则不受此参数的控制. 并且默认情况下CCLayer的默认锚点是 中点,而不是左下角的点. ...

  7. C++实现邮件群发的方法

    这篇文章主要介绍了C++实现邮件群发的方法,较为详细的分析了邮件发送的原理与C++相关实现技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C++实现邮件群发的方法.分享给大家供大家参考.具 ...

  8. Redis 学习笔记(C#)

    Redis安装及简单操作 Windows下安装步骤: 1. 第一步当然是先下载咯~  地址:https://github.com/dmajkic/redis/downloads (根据自己实际情况选择 ...

  9. mssql 跨库获取mysql

    exec sp_addlinkedserver @server='MYSQL', --这是链接服务器的名称 @srvproduct='mysql', --这个你自己随便吧 @provider='MSD ...

  10. CAST function should support INT synonym for SIGNED. i.e. CAST(y AS INT)

      Login / Register Developer Zone Bugs Home Report a bug Statistics Advanced search Saved searches T ...