#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]