5

我想澄清如何将 .csv 中的数据导入具有 3 列的表中(请参阅下面的 CR Ranking.csv)。我的查询:

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

将结果输出到列:

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 参数中的一些内容,也许这很容易?

是的:我正在使用 Office 2010 中的 64 位 ODBC 驱动程序来获取 .csv、.txt 等的驱动程序......这就是为什么提供程序是:'Microsoft.ACE.OLEDB.12.0',这就是为什么这个连接字符串没有' t似乎工作:

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

CR 排名.csv:

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

UPD 1:没有格式文件 可以吗?

UPD 2:我通过格式文件制作 - 这很容易。抱歉打扰了。

4

1 回答 1

3

我知道这是一个旧帖子,但我想我还是会回复。

我没有使用 ACE 尝试过这个,但我发现有几篇帖子说类似下面的内容会起作用。注意自定义 Delimited(;) 设置...

select top 50 * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=c:\temp\captell;HDR=Yes;FORMAT=Delimited(;)', 'SELECT * FROM [DASDGIGS0013046591395.TXT]')
于 2011-04-17T20:01:55.120 回答