您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關測試幾個xml的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
使用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的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。