Я разработал несколько сценариев 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)?
Спасибо, Пол