2012-04-13 200 views
0

導出到平面文件CSV後,包含逗號,引號和製表符的列會導致Excel出現問題。供應商需要在Excel中讀取文件以進行手動更改,然後需要使用平面文件格式CSV格式將PL/SQL加載到Oracle表中。將SQL Server表導出爲CSV問題逗號,製表符和引號

我可以從SQL Server中的表中刪除這些字符,但有沒有更聰明的方法?在Excel中完成時保存爲CSV是否有意義,並且在嘗試將文件加載到Oracle時會導致問題?

此外,我們需要第一行有列名..任何SQL方式來產生所有文件在一舉(第一行瓷磚),而不是使用導出到平面文件?

更新:我在嘗試MSSQL導出到Excel,但一些表給我的「定義的字段太多」

回答

2

的錯誤,我相信你有幾個選擇這裏。

1)選擇一個不同的分隔符(不在你的輸出中)〜或`或or |可能工作

2)將每個輸出字段換成引號,csv excel知道把它當作一個字段。 2a)如果你的輸出包含「那麼你需要將它們加倍,這樣CSV/Excel就知道你的意思是」而不是結束或開始一個新的領域。

3)不要因爲這個原因使用CSV,請使用XML。甲骨文處理它太..

4)使基礎,而不是劃定

所以直接答覆您的問題導入/導出位置:

但有一個更聰明的方式?使用XML,SQL服務器& Oracle既支持,也可以從中導入。

是否有意義保存到CSV在Excel中完成 對我來說不是

時候會試圖將文件加載到Oracle反正時cuase問題? 除非你已經處理了所有的特殊字符並且正確劃定了它們,否則它可以。

任何SQL方式一次性生成所有文件(第一行中的圖塊)而不是使用導出到平面文件?再次建議XML或EDI。

+0

供應商特別希望csv與列名的第一行一致。我沒有看到從我的sql 2005客戶端導出到XML選項。 – o365spo 2012-04-13 18:11:06

+0

@cyberpine太糟糕了,供應商不接受XML,只要從2005年導出...這裏是[鏈接](http://netrsc.blogspot.com/2008/01/export-data-from-sql-server (http://msdn.microsoft.com/zh-cn/library/ms191184(v=sql.90).aspx#bulk_export_xml_data)和[另一個這是MSFT](http://msdn.microsoft.com/zh-cn/library/ms191184(v = sql.90).aspx#bulk_export_xml_data) ](http://www.sqldbatips.com/showarticle.asp?ID=23)... – xQbert 2012-04-14 17:48:08

+1

@cyberpine我會問供應商他們是如何需要接收你列出的情況。逗號的數據應該......逃過了怎麼樣?如果他們說包裝字段在「然後問你是否應該加倍」在數據中以逃避它們?(IE 2和2a) – xQbert 2012-04-14 17:54:37

0

我面臨着一個類似的挑戰 - 從SQL導出到Excel ...同時從查詢結果中輕鬆完成,右鍵單擊並將結果保存到CSV中。問題是任何包含逗號的列都會破壞表的結構。

我使用OPENROWSET解決了這個問題,並將數據直接輸入到Excel文件中。最僞證明的方式,我發現做到這一點:這裏SQL Server export to Excel with 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 

謝謝! Ken

相關問題