Я хотел бы передать объект JSON в хранимую процедуру SQL Server 2016 без десериализации объекта и позволить базе данных обрабатывать данные.
Я передаю:
DECLARE @json NVarChar(2048) = N'[{
"PMID": "31390573",
"pubdate": "2019",
"data": {
"memberID": "1692",
"pmid": "31390573",
"sortpubdate": "2019/08/06 00:00",
"pmc": "PMC6733019"
}
}, {
"PMID": "31213464",
"pubdate": "2019",
"data": {
"memberID": "1692",
"pmid": "31213464",
"sortpubdate": "2019/08/15 00:00",
"pmc": "PMC6753942"
}
}, {
"PMID": "31130363",
"pubdate": "2019",
"data": {
"memberID": "1692",
"pmid": "31130363",
"sortpubdate": "2019/06/20 00:00",
"pmc": "PMC6588466"
}
}]'
Если я использую
SELECT * FROM OPENJSON(@json);
Я получу
0 { "PMID": "31390573", "pubdate": "2019", "data": { "memberID": "1692", "pmid": "31390573", "sortpubdate": "2019/08/06 00:00", "pmc": "PMC6733019" } } 5
1 { "PMID": "31213464", "pubdate": "2019", "data": { "memberID": "1692", "pmid": "31213464", "sortpubdate": "2019/08/15 00:00", "pmc": "PMC6753942" } } 5
2 { "PMID": "31130363", "pubdate": "2019", "data": { "memberID": "1692", "pmid": "31130363", "sortpubdate": "2019/06/20 00:00", "pmc": "PMC6588466" } } 5
Я бы хотел закончитьс таблицей с одним столбцом для элементов в элементе данных, поэтому столбец для memberID - pmid --sortpubdate - pmc.
memberID pmid sortpubdate
------------------------------------------------
1692 31390573 2019-08-06 00:00:00.0000000
1692 31213464 2019-08-15 00:00:00.0000000
1692 31130363 2019-06-20 00:00:00.0000000
Возможно ли это? Если бы это был XML, его можно было бы разорвать и обработать.