导出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
谢谢! 肯