使用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. 自己动手丰衣足食之 jQuery 数量加减插件

    引言 做一个手机端的订单相关项目中,其中下订单时需要用到数量加减的控件,可以设置默认值,也可以设置最大值和最小值.使用jQuery这么长时间了,平时很少去编写属于自己的插件,现在编写的时候对立面的一些 ...

  2. Ftp上传下载 C#

    public class MyFtpClass { private readonly string _destIp; private readonly string _userName; privat ...

  3. 我的angularjs源码学习之旅2——依赖注入

    依赖注入起源于实现控制反转的典型框架Spring框架,用来削减计算机程序的耦合问题.简单来说,在定义方法的时候,方法所依赖的对象就被隐性的注入到该方法中,在方法中可以直接使用,而不需要在执行该函数的时 ...

  4. 分享一个UI与业务逻辑分层的框架(三)

    序言 前两篇讲解了UIMediator框架的使用及具体原理代码.本篇讲述MediatorManager的实现代码及展望. MediatorManager MediatorManager的作用有两点: ...

  5. 30行代码让你理解angular依赖注入:angular 依赖注入原理

    依赖注入(Dependency Injection,简称DI)是像C#,java等典型的面向对象语言框架设计原则控制反转的一种典型的一种实现方式,angular把它引入到js中,介绍angular依赖 ...

  6. MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建

    前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...

  7. Web内置对象 跨页面传值

    内置对象: 1.QueryString - 地址栏数据拼接 get传值方式 格式:?key=value优点:简单好用,速度快,不消耗服务器内存. 缺点:只能传字符串,保密性不好,长度有限 Reques ...

  8. 【C#进阶系列】30 学习总结

    前面学起来还是很顺的,毕竟很多都接触过. 后面学起来只能用“磨”来形容,以至于八章用了2个月.(当然也有相当一些原因是这两个月中发生了一些个人生活上的问题) 总的来说收获超大,这种感觉就像大一的时候学 ...

  9. Java 批量插入数据(Oracle)

    //批量添加20000条数据用时8秒. try {    String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...

  10. Singleton

    1.//懒汉模式 //天生线程不安全,但是效率高 public class Singleton { private static Singleton singleton; private Single ...