Как сменить кодировку xml-файла с помощью хранимой процедуры SQL?

Пытаюсь сделать процедуру с параметром(путь к файлу), добавляющую в таблицу данные из xml-файла. Нужно, чтобы процедура меняла кодировку файла(с UTF-8 на Windows-1251). Подскажите, пожалуйста, как это сделать?

(P.S. В файлах кириллица отображается некорректно, рандомные символы или знаки вопроса)

ALTER PROCEDURE [dbo].[LoadXMLFile_manufactures]
    @path_file NVARCHAR(255)
AS
BEGIN
    
    DECLARE @SQL NVARCHAR(MAX);
    DECLARE @XMLData XML;

    SET @SQL = '
        SELECT @XMLData = BulkColumn
        FROM OPENROWSET(BULK ''' + @path_file + ''', SINGLE_BLOB) AS x;'
    
    EXEC sp_executesql @SQL, N'@XMLData XML OUTPUT', @XMLData OUTPUT

    MERGE INTO dbo.manufactures as target_mnftrs
    USING (
    SELECT
        DataXml.value('id[1]','INT') as id,
        DataXml.value('name[1]','NVARCHAR(MAX)') as name,
        DataXml.value('created_date[1]','DATETIME') as created_date,
        DataXml.value('last_update_date[1]','DATETIME') as last_update_date
    FROM @XMLData.nodes('/root/manufacturers/manufacturer') AS T(DataXml)
    ) as source_mnftrs
    ON target_mnftrs.id = source_mnftrs.id
    WHEN MATCHED THEN UPDATE SET
        target_mnftrs.name = source_mnftrs.name,
        target_mnftrs.created_date = source_mnftrs.created_date,
        target_mnftrs.last_update_date = source_mnftrs.last_update_date
    WHEN NOT MATCHED THEN INSERT
        (id, name, created_date, last_update_date)
    VALUES 
        (source_mnftrs.id, source_mnftrs.name, source_mnftrs.created_date, source_mnftrs.last_update_date);
END

Ответы (0 шт):