Я пытаюсь решить проблему, в которой я хочу динамически сглаживать таблицы на сервере SQL, которые могут содержать объекты JSON в определенных полях.
Мне нужно иметь возможность циклически проходить через каждое поле, определять, находится ли оно в формате JSON, а затем динамически выравнивать их с помощью функции JSONValue () в SQL Server.
https://i.imgur.com/bqO4aPj.png
select SalesOrderNumber,
JSON_Value(JSONValue,'$.CustomerID') as CustomerID ,
JSON_Value(JSONValue,'$.OrderDate') as OrderDate ,
JSON_Value(JSONValue,'$.TotalDue') as TotalDue ,
JSON_Value(JSONValue,'$.ShipMethodID') as ShipMethodID ,
JSON_Value(JSONValue,'$.TerritoryID') as TerritoryID ,
JSON_Value(JSONValue,'$.SalesPersonID') as SalesPersonID
from OrderHeaderJSON
Проблема в том, что им придется вручную выписывать функцию для каждого поля и записывать в нее соответствующий псевдоним.
Я не уверен, с чего начать - пишут ли хранимые процедуры, функции, использующие курсоры? Я надеюсь, что кто-то может указать мне правильное направление. Я думаю обойти каждое поле, выполнить ISJSON (), чтобы проверить, является ли его json, а затем правильно проанализировать его с помощью псевдонима, соответствующего имени ключа в объекте JSON.
Спасибо!