使用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-1.9.1源码分析系列(十二) 筛选操作

    在前面分析的时候也分析了部分筛选操作(详见),我们接着分析,把主要的几个分析一下. jQuery.fn.find( selector ) find接受一个参数表达式selector:选择器(字符串). ...

  2. uploadify上传错误:uncaught exception: call to startUpload failed原因

    这个不是什么tab的问题,而是可能有多个上传的div或者input(含有相同的name或者ID)导致的 如果有两个不同的上传按钮,那么他们的name,id要设置得不一样. <div id='to ...

  3. 【非原创】IOS 验证文字是否是中文

    从环信中找到的部分不错的代码,拿出来记录一下 是否是中文 -(BOOL)isChinese{ NSString *match=@"(^[\u4e00-\u9fa5]+$)"; NS ...

  4. Winform开发框架之肖像显示保存控件的实现

    我们在开发一些Winform程序的时候,除了常规的显示普通数据外,有的时候需要显示一些人员肖像或者一些车辆等物体的图片,一般这些内容较小,所以以二进制存储在数据库是一个不错的方案.但由于它们虽然很常用 ...

  5. .NET 对象生命周期

    GC 垃圾回收      .NET Framework 的垃圾回收器管理应用程序的内存分配和释放.每次您使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存.只要托管堆中有地址空间可用,运 ...

  6. 【吐槽】gist.github.com疑遭中间人攻击

    北京时间201510081004,云南电信用户,现在上https://gist.github.com/,用IE10会提示证书被伪造,用搜狗4.1.3.9668会跳转到[http://www.cjb.n ...

  7. Android按返回键退出程序但不销毁,程序后台保留

    重写onKeyDown事件即可 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyE ...

  8. J2EE的13种核心技术

    一.JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库 ...

  9. ProxyPattern

    代理模式是aop编程的基础,其主要作用是操作对象,并将你需要的新功能切入若干个你想要的切入点,静态代理模式比较简单,但是缺点比较大,这里就不上代码了,下面写上动态代理模式的代码(jdk方式,而不是采用 ...

  10. 装配bean

    spring有三种装配bean的方式:隐式装配.java代码装配.xml装配 隐式装配最为省事方便,也称为自动化装配 这三种装配方式可以混搭着来用 在这里通过一个例子来讲述配置 CD的两个实现,一个是 ...