Как вставить текст JSON в один из столбцов в таблице в SQL Server - PullRequest
0 голосов
/ 27 марта 2019

У меня есть код JSON, в котором я пытаюсь получить вывод.Итак, в одном из столбцов в моем коде, например, «RETURN_MESSAGE», значение равно json ... поэтому я пытаюсь получить значение в столбце return_message, когда я запускаю запрос на выборку, но он дает мне ноль.Итак, как я могу получить текст JSON, который находится внутри «RETURN_MESSAGE». Может ли кто-нибудь помочь мне в этом, пожалуйста

declare @json varchar(max) ='[
                                            {
                                            "SP_NAME":"test"
                                            ,"KEY":"a39a"
                                            ,"EXEC_ID":4857
                                             ,"RETURN_MESSAGE":{
"d":{
"Key":"e77d83af-2827-447c-8b98-46c9e9d0a39a"
,"reqCountLimit":0
,"reqFormat":"JSON"
,"reqExecutionMode":"B"
,"srcExtid":284
,"tgtExtId":4857
,"srcTableName":"KDP_STG_SAP_CSKS"
,"SourceSchema":"QCDC1"
,"serviceId":"1001"
,"reqBatchRecCount":15000
,"compressedFlag":"Y"
,"mDataFlag":"Y"
,"reqDeltaFromUTC":"0000-00-00T00: 00: 00"
,"reqExtMode":"F"
,"reqStatusType":"S"
,"reqStatus":"Successfully Batch Job Started !!!"
,"OBJECT_MDATA":{
"results":[
{
"Fieldname":"KDP_TABKEY"
,"Datatype":"CHAR"
,"Length":78
}
,{
"Fieldname":"KDP_CHNGIND"
,"Datatype":"CHAR"
,"Length":1
}
]
}
,"DELTA_CONFIG":[
]
}
}
 }]'

   SELECT * FROM OPENJSON(@json) with(SP_NAME varchar(50),KEY varchar(255),EXEC_ID int,RETURN_MESSAGE varchar(max))

output

sp_name   key   exec_id   RETURN_MESSAGE
test      a39a    4857       NULL

1 Ответ

1 голос
/ 27 марта 2019

Вы можете попробовать следующий запрос.

SELECT * FROM OPENJSON(@json) 
WITH(SP_NAME VARCHAR(50),KEY VARCHAR(255),EXEC_ID INT,RETURN_MESSAGE NVARCHAR(MAX) AS JSON)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...