Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 JSON import MSSQL  [new]
Jonsnow
Member

Откуда:
Сообщений: 54
У меня есть json файл. Мне нужно есть переобразовать в таблицы в mssql. Такая проблема, как разбить двойной массив.
Вот пример моего решения:
Кусок json файла:

"results": [
        {
            "id": "000000000000",
            "name": "POLSKA",
            "values": [
                {
                    "year": "2018",
                    "val": 72,
                    "attrId": 1
                }
            ]
        },
.....]


Вот решение такое:
DECLARE @JSON VARCHAR(MAX)

SELECT @JSON = BulkColumn FROM OPENROWSET 
(BULK 'E:\PRACA\API GUS\BDL API\json_BDL.json', SINGLE_CLOB) 
AS j

SELECT id, name, [values]
INTO MyTableName
  FROM OPENJSON (@JSON, '$.results')
  WITH (id VARCHAR(20),
    name NVARCHAR(30),
    [values] NVARCHAR(MAX) AS JSON)
	SELECT * FROM MyTableName

Нужно как-то ещё values разбить, но не получается(
21 июн 19, 12:42    [21912869]     Ответить | Цитировать Сообщить модератору
 Re: JSON import MSSQL  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
CROSS APPLY подзапроса, который для каждой строки [values] через OPENJSON читать будет
25 июн 19, 11:41    [21914685]     Ответить | Цитировать Сообщить модератору
 Re: JSON import MSSQL  [new]
Jonsnow
Member

Откуда:
Сообщений: 54
Yuri Abele
CROSS APPLY подзапроса, который для каждой строки [values] через OPENJSON читать будет


Можно пример?
19 июл 19, 17:24    [21930551]     Ответить | Цитировать Сообщить модератору
 Re: JSON import MSSQL  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
MSDN - OPENJSON
Начиная с третьего примера.

P.S. Не ленитесь сначала глянуть доку, поискать в Google, а потом уже сюда за готовым рецептом
22 июл 19, 14:42    [21931755]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить