У меня проблемы с получением @jsonText
для включения специальных символов, таких как испанский n.Я считаю, что это потому, что SELECT BulkColumn FROM OPENROWSET
возвращает BLOB-объект в формате varchar
.Я попытался изменить @json_Out
, чтобы взять nvarchar(MAX)
, но это вызывает ошибку, когда я использую OPENJSON
на @jsonText
/* Dynamically read json path from i/p variable and perform the openrowset process */
DECLARE @jsonText NVARCHAR(MAX),
@Command NVARCHAR(MAX),
@Param_Def NVARCHAR(500),
@FileVar NVARCHAR(MAX),
@json_Out VARCHAR(MAX);
SET @FileVar = '\\s\storage\root\Health\To_ODS\IDC\Queue\92.json';
SET @Param_Def = N'@JSON_FILE NVARCHAR(MAX), @json_Out varchar(MAX) OUTPUT';
SET @Command = N'SELECT @json_Out = BulkColumn FROM OPENROWSET(BULK ''' + '\\s\storage\root\Health\To_ODS\IDC\Queue\92.json' + N''', SINGLE_BLOB, CODEPAGE=''65001'') ROW_SET';
EXEC sp_executesql @Command,
@Param_Def,
@JSON_FILE = @FileVar,
@json_Out = @jsonText OUTPUT;
SELECT * FROM openjson(@jsonText)