Преобразование данных столбца json в таблицу в sql server 2012

#json #sql-server-2012

#json #sql-server-2012

Вопрос:

У меня json хранится в таблице с 3 миллионами строк. Одна строка содержит json в формате ниже

 [
   {
      "Transaction":[
         {
            "ProductInfo":[
               {
                  "LINE_NO":"1",
                  "STOCKNO":"890725471381116060"
               },
               {
                  "LINE_NO":"2",
                  "STOCKNO":"890725315884216020"
               }
            ]
         }
      ],
      "Payment":[
         {
            "ENTSRLNO":"1",
            "DOCDT":"08/25/2016"
         }
      ],
      "Invoice":[
         {
            "SALES_TYPE":"Salesinvoice",
            "POS_CODE":"A20",
            "CUSTOMER_ID":"0919732189692",
            "TRXN_TYPE":"2100",
            "DOCNOPREFIX":"CM16",
            "DOCNO":"1478",
            "BILL_DATE":"08/25/2016 03:59:07"
         }
      ]
   }
]
  

Я хочу сбросить выше json в трех разных таблицах

  1. ProductInfo
  2. Таблица платежей
  3. Счет-фактура

Как выполнить вышеуказанную задачу оптимизированным способом?

Комментарии:

1. SO не является сервисом «мне это нужно; дайте мне код». Это для получения ответов на проблемы с определенными частями программирования, с которыми вы можете столкнуться. Какой код вы уже пробовали? С чем именно вы испытываете трудности? Просьба к нам рекомендовать, как выполнить задачу «оптимизированным» способом, может рассматриваться как основанная на мнении, поскольку всегда есть много способов освежевать кошку. Пожалуйста, рассмотрите возможность добавления кода, который вы уже пробовали, к вашему вопросу и любым возникающим у вас проблемам, и вы можете получить несколько полезных ответов 🙂

2. Я пытался использовать функцию OPENJSON, но она не работает в моем sql server 2012, потому что мой compatibility_level равен 120, а OPENJSON требует compatibility_level 130. И в текущем сценарии у меня нет разрешения на изменение уровня совместимости базы данных.

Ответ №1:

Ну, наиболее эффективным способом будет написать процедуру и использовать open json в sql server, проверьте ссылку ниже: https://msdn.microsoft.com/en-IN/library/dn921879.aspx