我想澄清一下如何将.csv中的数据导入到包含3列的表中(请参阅下面的CR Ranking.csv)。我的问题:
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Work\;HDR=Yes;',
'SELECT * FROM [CR Ranking.csv]');
将结果输出到一个 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 params的一些东西,也许这很容易?
是的:我正在使用Office 2010的64位ODBC驱动程序来获取.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 :我通过格式文件制作 - 很简单。对不起骚扰。
答案 0 :(得分:3)
我知道这是一个老帖子,但我想我还是会回应。
我没有尝试使用ACE,但我发现有几个帖子说下面的内容会起作用。请注意自定义分隔(;)设置...
select top 50 * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=c:\temp\captell;HDR=Yes;FORMAT=Delimited(;)', 'SELECT * FROM [DASDGIGS0013046591395.TXT]')