2016-01-20 137 views
0

我創建了一個SQL Server 2012存儲過程,它調用一個函數,該函數返回一個JSON對象並將其存儲在名爲@stormOutages的聲明變量中。SQL Server 2012 - 如何將JSON對象映射到表

我想能夠將JSON對象映射到數據庫中的3個表。有沒有一個內置函數可以幫助我做到這一點,還是我必須手動解析JSON對象?

向下滾動以查看SP和JSON對象。

存儲過程是這樣的:

CREATE PROCEDURE dbo.InsertStormOutages 
[email protected] NVARCHAR(MAX), 
[email protected] NVARCHAR(100) 
AS 
BEGIN 
    DECLARE @stormOutages NVARCHAR(MAX) 

    SET NOCOUNT ON; 

    SELECT 
     @stormOutages = dbo.GetStormOutages('https://dummywebservice.com/values') 

    SELECT 
     @stormOutages AS ReturnedJSON 
END 

JSON:

{ 「LASTUPDATED」: 「2015年8月26日05:00 PM」, 「縣」:{「阿拉楚阿「:{」 名稱 「:」 的Alachua」, 「numberofoutages」:222, 「numberofrestored」:222, 「numberofaffected」:222, 「NUMBEROFACCOUNTS」:1300}}, 「全州」:{ 「名稱」: 「全州」, 「numberofoutages」:1340237,「numberofrestored」:388972,「number offfected」:1728987,「numberofaccounts」:4760460}}

+0

SQL Server 2012對JSON沒有任何本機支持 - 即將到來的SQL Server ** 2016 **將具有對關係數據創建JSON以及將JSON解析爲關係件的本機JSON支持 –

+0

@marc_s I我能夠在實際發送到存儲過程之前操縱JSON對象。你認爲我可以把它放在XML格式,然後以這種方式映射嗎? – jorgeAChacon

回答

1

因此,通過使用CLR(VS .NET)創建的DLL從Web服務中檢索JSON對象。因此,我使用C#將JSON轉換爲XML,然後構建彙編文件並將其導出到SQL Server 2012.從那裏我創建了一個存儲過程,通過xml數據解析並將所需的值插入到相應的表中。