Microsoft SQL Server «OPENDATASOURCE» Unicode Арабский

#sql #sql-server #csv #tsql

#sql #sql-сервер #csv-файл #tsql

Вопрос:

Я пытаюсь прочитать CSV-файл с SQL Server, используя этот запрос

 SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
                             'Text;Database=C:xxx;HDR=YES')...[export#csv]
 

это работает хорошо
, моя проблема здесь в Юникоде, в котором файл использует кодировку UTF-8
как определить Юникод в OPENDATASOURCE

файл, который я читаю, не показывает арабский символ в правильной кодировке

Неправильная кодировка

Комментарии:

1. что, если вы используете OleDbConnection, OleDbDataReader etc?

2. Extended Properties="Text;CharacterSet=UTF8...

3. Я попробовал этот SELECT * ИЗ OPENDATASOURCE(‘Microsoft.ACE.OLEDB.12.0’, ‘Text;Database= C: ODKBriefcase ExportedData 28; HDR = ДА; Расширенные свойства = «Набор символов = UTF8″‘)… [экспорт #csv] но я получил эту ошибку, не удается инициализировать объект источника данных поставщика OLE DB «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(null)».

4. SQL Server представил поддержку UTF-8 только в SQL Server 2019; если вы используете предыдущую версию, вам нужно будет изменить кодировку файла перед вами перед процессом ETL.

5. файл имеет формат UTF8

Ответ №1:

это сработало для меня

 SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Text;Database=C:xxx;HDR=YES
;Extended Properties="text;characterset=65001;HDR=YES;FMT=Delimited"')...[export#csv]