导出SQL Server表格到CSV问题逗号,制表符和引号

导出到平面文件CSV后,包含逗号,引号和制表符的列在Excel中会导致问题。 供应商需要在Excel中读取文件以进行手动更改,然后以平面文件格式CSV格式需要该文件将PL / SQL加载到Oracle表中。

我可以从SQL Server中的表中删除这些字符,但有没有更聪明的方法? 在Excel中完成保存为CSV是否合理,在尝试将文件加载到Oracle时会导致问题?

此外,我们需要第一行有列名..任何SQL的方式来产生所有的文件在一举(第一行瓷砖),而不是使用导出到平面文件?

更新:我正在尝试一个MSSQL导出到Excel,但有些表给我一个错误“太多字段定义”

我相信你在这里有几个select。

1)select一个不同的分隔符(不在你的输出中)〜或`或| 可能会工作

2)把每个输出字段换成引号,csv excel知道把它当作一个字段。

2a)如果你的输出包含“那么你需要加倍,所以CSV / Excel知道你的意思是”而不是结束或开始一个新的领域。

3)不要因为这个原因使用CSV,请使用XML。 甲骨文也处理它..

4)使import/出口的立场,而不是划定

所以直接回答你的问题:

但有没有更聪明的方法? 使用XML,SQL服务器和Oracle都支持,并可以从中导入。

在Excel中完成时保存到csv是否有意义不对我

在尝试将文件加载到Oracle中时会出现问题吗? 除非你已经处理了所有的特殊字符,并妥善划定了它们,否则是的。

任何SQL的方式来产生所有的文件在一举(第一行瓷砖),而不是使用导出到平面文件? 我再次build议XML或EDI。

我面临着一个类似的挑战 – 从SQL导出到Excel …同时从查询结果中轻松完成,右键单击并将结果保存到CSV中。 问题是任何包含逗号的列都会破坏表的结构。

我使用OPENROWSET解决了这个问题,并将数据直接input到Excel文件中。 我发现这样做的最虚假的方式: SQL Server导出到Excel与OPENROWSET

虽然我相信我使用了Excel和MSSQL的更新版本,下面是我的代码:

 insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test.xlsx', [Sheet1$]) select * from TestTable 

谢谢! 肯