Я делаю процедуру, которая принимает входной параметр filepath, считывает из него данные json и вставляет данные в таблицу.Однако, когда я пытаюсь выполнить процедуру, я получаю эту ошибку:
Сообщение 201, Уровень 16, Состояние 4, Процедура main.loadData, Строка 0 [Стартовая строка 244]
Процедураили функция «loadData» ожидает параметр «@filePath», который не был предоставлен.
Удивительно, что я добавляю параметр ..
Код процедурыэто:
ALTER PROCEDURE main.loadData
(@filePath VARCHAR(200))
AS
BEGIN
DECLARE @pathScript AS VARCHAR(MAX)
SET @pathScript='DECLARE @jsonVariable NVARCHAR(max);
SELECT @jsonVariable = BulkColumn
FROM OPENROWSET (BULK ''' + @filepath
+ ''', SINGLE_CLOB) as j;
INSERT INTO main.jsonData(restaurant, priceRange, country, score, reviewDate)
SELECT *
FROM OPENJSON(@jsonVariable, ''$.reviews.row'')
WITH
(restaurant VARCHAR(100) ''$.restaurant'',
priceRange VARCHAR(50) ''$.priceRange'',
country VARCHAR(50) ''$.country'',
score INTEGER ''$.score'',
reviewDate DATETIME ''$.reviewDate''
);';
EXEC(@pathScript);
END;
GO
И код выполнения таков:
EXEC main.loadData 'C:\data.json';