亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SqlServer將查詢結果轉換為XML和JSON

2024-08-31 01:04:59
字體:
來源:轉載
供稿:網友

很久之前用到的,現在整理在這,里面一些代碼來源于網上,不過有些bug已被我修改了。

1.查詢結果轉XML

DECLARE @ParameterSQL NVARCHAR(MAX)='SELECT * FROM table';DECLARE @SQL NVARCHAR(MAX)DECLARE @XMLString VARCHAR(MAX)DECLARE @XML XMLDECLARE @Paramlist NVARCHAR(1000)SET @Paramlist = N'@XML XML OUTPUT'SET @SQL = 'WITH PrepareTable (XMLString)'SET @SQL = @SQL + 'AS( 'SET @SQL = @SQL + @ParameterSQL+ ' FOR XML RAW,TYPE,ELEMENTS'SET @SQL = @SQL + ')'SET @SQL = @SQL + 'SELECT @XML=[XMLString]FROM[PrepareTable]'EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUTSET @XMLString=CAST(@XML AS VARCHAR(MAX))SELECT @XML;SELECT @XMLString;

其中@ParameterSQL為要查詢的語句,@XMLXML格式數據,@XMLStringXML轉成字符串

2.查詢結果轉JSON

查詢結果轉換成json需要經過兩個步驟,首先將查詢結果轉成XML數據,然后通過XML數據轉成json

XML轉JSON的存儲過程如下:

CREATE PROCEDURE [dbo].[SerializeJSON] (   @XML XML,   @json_xml NVARCHAR(MAX) OUTPUT  )ASBEGIN  DECLARE @XMLString NVARCHAR(MAX);  SET @XMLString = CAST(@XML AS NVARCHAR(MAX));  BEGIN TRY--//開始捕捉異常    DECLARE @JSON NVARCHAR(MAX);    DECLARE @Row VARCHAR(MAX);    DECLARE @RowStart INT;    DECLARE @RowEnd INT;    DECLARE @FieldStart INT;    DECLARE @FieldEnd INT;    DECLARE @KEY VARCHAR(MAX);    DECLARE @Value VARCHAR(MAX);    DECLARE @StartRoot VARCHAR(100);    SET @StartRoot = '<row>';    DECLARE @EndRoot VARCHAR(100);    SET @EndRoot = '</row>';    DECLARE @StartField VARCHAR(100);    SET @StartField = '<';    DECLARE @EndField VARCHAR(100);    SET @EndField = '>';    SET @RowStart = CHARINDEX(@StartRoot, @XMLString, 0);    SET @JSON = '';    WHILE @RowStart>0    BEGIN      SET @RowStart = @RowStart + LEN(@StartRoot);      SET @RowEnd = CHARINDEX(@EndRoot, @XMLString, @RowStart);      SET @Row = SUBSTRING(@XMLString, @RowStart, @RowEnd - @RowStart);      SET @JSON = @JSON + '{';      --//for each row      SET @FieldStart = CHARINDEX(@StartField, @Row, 0);      WHILE @FieldStart>0      BEGIN        --//parse node key        SET @FieldStart = @FieldStart + LEN(@StartField);        SET @FieldEnd = CHARINDEX(@EndField, @Row, @FieldStart);        DECLARE @end INT = CHARINDEX('/>', @Row, @FieldStart);        IF @end<1          OR @end>@FieldEnd        BEGIN          SET @KEY = SUBSTRING(@Row, @FieldStart, @FieldEnd - @FieldStart);          SET @JSON = @JSON + '"' + @KEY + '":';          --//parse node value          SET @FieldStart = @FieldEnd + 1;          SET @FieldEnd = CHARINDEX('</', @Row, @FieldStart);          SET @Value = SUBSTRING(@Row, @FieldStart, @FieldEnd - @FieldStart);          SET @JSON = @JSON + '"' + @Value + '",';        END;        SET @FieldStart = @FieldStart + LEN(@StartField);        SET @FieldEnd = CHARINDEX(@EndField, @Row, @FieldStart);        SET @FieldStart = CHARINDEX(@StartField, @Row, @FieldEnd);      END;      IF LEN(@JSON)>0        SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON));      SET @JSON = @JSON + '},';      --// for each row      SET @RowStart = CHARINDEX(@StartRoot, @XMLString, @RowEnd);    END;    IF LEN(@JSON)>0      SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON));    --//SET @JSON = '[' + @JSON + ']';    SET @json_xml = @JSON;  END TRY--//結束捕捉異常  BEGIN CATCH--//有異常被捕獲    SET @json_xml = @XMLString;  END CATCH;--//結束異常處理END;

以上所述是小編給大家介紹的SqlServer將查詢結果轉換為XML和JSON,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区av在线播放| 亚洲欧美日韩第一区| 91国内揄拍国内精品对白| 免费av在线一区| 77777亚洲午夜久久多人| 在线看片第一页欧美| 狠狠综合久久av一区二区小说| 国产精品第七影院| 亚洲国产日韩欧美在线99| 孩xxxx性bbbb欧美| xxxxx成人.com| 久久天天躁狠狠躁夜夜爽蜜月| 色综合久久久久久中文网| 亚洲欧美中文另类| 一区二区亚洲欧洲国产日韩| 久久精品在线播放| 欧美在线视频一区| 亚洲片国产一区一级在线观看| 色悠悠国产精品| 欧美日韩国产一区二区| 欧美成人精品xxx| 91精品国产91久久| 欧美国产日韩中文字幕在线| 国产精品视频免费观看www| 欧美一级在线播放| 精品久久久久国产| 精品无人区太爽高潮在线播放| 欧美日本黄视频| 色爱精品视频一区| 色偷偷888欧美精品久久久| 欧美在线激情视频| 日韩电影视频免费| 日韩电影中文字幕| 亚洲欧美日韩国产成人| 成人综合网网址| 欧美成人精品一区二区| 欧美乱大交做爰xxxⅹ性3| 亚洲久久久久久久久久| 国产精品v片在线观看不卡| 精品久久久久久久久久| 亚洲夜晚福利在线观看| 国产精品美女www| 91免费看片在线| 国产精品精品一区二区三区午夜版| 日韩大片免费观看视频播放| 中文国产成人精品| 2019亚洲日韩新视频| 日韩女优在线播放| 日韩av最新在线观看| 国产日韩精品在线| 午夜精品久久久久久久久久久久| 色综合色综合久久综合频道88| 91chinesevideo永久地址| 日韩电影免费在线观看中文字幕| 亚洲精品久久久久久久久久久久| 青青草99啪国产免费| 成人春色激情网| 亚洲一区精品电影| 日韩中文av在线| 亚洲xxxx做受欧美| 91精品国产九九九久久久亚洲| 国产视频精品xxxx| 久久精品国产亚洲| 亚洲视频在线播放| 欧美在线性爱视频| 亚洲91精品在线| 欧美裸身视频免费观看| 欧美国产日韩二区| 欧美电影免费观看网站| 久久影视电视剧凤归四时歌| 国产v综合ⅴ日韩v欧美大片| 欧美亚州一区二区三区| 国产91在线播放精品91| 色噜噜国产精品视频一区二区| 亚洲japanese制服美女| 欧美在线性爱视频| 日韩中文字幕不卡视频| 久久精品视频va| 九九热99久久久国产盗摄| 国产中文欧美精品| 色先锋久久影院av| 亚洲国产精品久久久久秋霞不卡| 久久久国产91| 国产自摸综合网| 91欧美精品午夜性色福利在线| 欧美在线观看网站| 日本国产欧美一区二区三区| 色偷偷888欧美精品久久久| 亚洲一级片在线看| 91色中文字幕| 91亚洲精品在线观看| 国产日韩在线亚洲字幕中文| 色悠久久久久综合先锋影音下载| 亚洲国产高清自拍| 91探花福利精品国产自产在线| 国产欧美精品一区二区三区-老狼| 国产精品自产拍在线观看| 色妞在线综合亚洲欧美| 狠狠干狠狠久久| 久久人人爽人人爽人人片av高清| 欧美在线观看一区二区三区| 欧美天天综合色影久久精品| 久久久国产精品亚洲一区| 96sao精品视频在线观看| 久久免费福利视频| 国产精品成人v| 91视频九色网站| 国产一区二区三区中文| 日韩av手机在线| 日韩中文字幕av| 欧美主播福利视频| 国产成人a亚洲精品| 国产日韩在线一区| 亚洲国产成人精品久久久国产成人一区| 成人黄色影片在线| 国产精品美女久久久免费| 91高潮精品免费porn| 97国产精品视频| 黑人巨大精品欧美一区二区一视频| 欧美日韩精品在线播放| 日韩精品中文字幕在线播放| 亚洲国产欧美久久| 亚洲精品电影久久久| 国产精品1234| 欧美与黑人午夜性猛交久久久| 欧美激情在线有限公司| 日韩精品视频在线观看网址| 精品成人在线视频| 欧美日韩黄色大片| 亚洲精品999| 黑人与娇小精品av专区| 亲爱的老师9免费观看全集电视剧| 国产精品激情av在线播放| 亚洲精品久久久久中文字幕二区| 色樱桃影院亚洲精品影院| 国产成人精品久久久| 精品综合久久久久久97| 日韩欧美亚洲一二三区| 国产欧美在线看| 亚洲第一视频在线观看| 色狠狠久久aa北条麻妃| 国产丝袜精品第一页| 国产精品一二三在线| 精品久久久久久久久久| 亚洲高清不卡av| 高清在线视频日韩欧美| 日韩欧美中文免费| 成人中文字幕在线观看| 亚洲欧美国产视频| 欧美精品久久久久久久久| 精品国产拍在线观看| 国产精品久久久久久久久久| 国产成人精品免费视频| 中文字幕亚洲综合久久筱田步美| 日韩精品视频观看| 亚洲free嫩bbb| 欧美成年人在线观看| 亚洲视频axxx| 欧美高清视频在线观看| 久久99国产精品久久久久久久久| 国产精品福利网站| 国产精品海角社区在线观看| 日本亚洲精品在线观看| 成人午夜激情网|