Импорт из csv (в разные столбцы) через Openrowset и Microsoft.ACE.OLEDB.12.0 - PullRequest
5 голосов
/ 07 сентября 2010

Я хочу уточнить, как можно импортировать данные из .csv в таблицу с 3 столбцами (см. CR Ranking.csv ниже).Мой запрос:

 select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Work\;HDR=Yes;', 
 'SELECT * FROM [CR Ranking.csv]');

Вывод результатов в one coulmn:

header: Category;INfo;Rank
row 1: Category 1;Info;1
row 2: Category 2;INfo2;2
row 3: Category 3;INfo3;3

Возможно ли через Openrowset разделить данные из .csv на 3 столбцы?Я думаю, что я что-то пропустил в параметрах Openrowset, возможно, это очень просто?

И ДА: я использую 64-битные драйверы ODBC из Office 2010 для получения драйверов для .csv, .txt и т. Д. Вот почемупоставщик: «Microsoft.ACE.OLEDB.12.0», и именно поэтому эта строка соединения не работает:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\';Extended Properties="text; HDR=NO; FMT=Delimited";

CR Ranking.csv:

Category;INfo;Rank
Category 1;Info;1
Category 2;INfo2;2
Category 3;Info3;3

UPD 1: Можно ли сделать без файла формата?

UPD 2 : я сделал через файл формата - это было легко.Извините за беспокойство.

1 Ответ

3 голосов
/ 18 апреля 2011

Я знаю, что это старый пост, но все равно решил ответить.

Я не пробовал это с помощью ACE, но нашел несколько постов, в которых говорится что-то вроде следующего. Обратите внимание на пользовательскую настройку с разделителями (;) ...

select top 50 * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=c:\temp\captell;HDR=Yes;FORMAT=Delimited(;)', 'SELECT * FROM [DASDGIGS0013046591395.TXT]')
...