Откройте использование JSON в SQL Server 2008 - PullRequest
0 голосов
/ 12 декабря 2018

Я разработал несколько сценариев SQL, которые запускаются в пакетном режиме.Они отлично работают в SQL Server 2017 (моя среда тестирования / разработки).Теперь мой клиент хочет, чтобы я перенес это на SQL Server 2008 (я знаю, что никогда не следует возвращаться назад, но клиент не хочет платить за 2017 год).

Мой сценарий выглядит так:

DECLARE @CJSON nvarchar(max)

SELECT @CJSON = BulkColumn
FROM OPENROWSET (BULK 'C:\Users\PaulB\desktop\Sched_Data\schedam.txt', SINGLE_CLOB) as j

INSERT INTO Schedules (SchedID, Type, JobNo, TotalHrs, EmployeeID, SchedDate, StartTime, FinishTime)
    SELECT
        SchedID, Type, JobNo, TotalHrs, EmployeeID, SchedDate, StartTime, FinishTime
    FROM
        OPENJSON(@CJSON)
        WITH (SchedID NUMERIC N'$.ID', 
              Type CHAR(15) N'$.Type', 
              JobNo NVARCHAR(5) N'$.Reference', 
              TotalHrs DEC(4,2) N'$.TotalHours', 
              SchedDate DATE N'$.Date',  
              EmployeeID NUMERIC(6) N'$.Staff.ID', 
              Blocks NVARCHAR(MAX) N'$.Blocks' as JSON)
    OUTER APPLY
        OPENJSON(Blocks); 
        WITH (StartTime DATETIMEOFFSET N'$.ISO8601StartTime', 
              FinishTime DATETIMEOFFSET N'$.ISO8601EndTime' )
go

Сценарий читает текстовый файл с данными JSON и вставляет в таблицу, называемую расписаниями, в этом случае.При запуске сценария он зацикливается на операторе WITH OPENJSON в SQL Server 2008, но идеально подходит в SQL Server 2017.

Какие у вас есть предложения по выполнению этой работы (помимо обновления до SQL Server 2017)?

Спасибо, Пол

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...