2011-04-14 116 views
8

我需要將oracle表格導出爲csv/excel文件格式(以及列標題)。通過cx_oracle或通過sqlplus的解決方案歡迎。從註釋如何將表格導出爲csv或excel格式

Python代碼:

con = cx.connect() 
cur = con.cursor() 
printer = cur.execute(sqlcode) 
con.commit() 
+0

'csv'模塊易於使用。請發佈迄今爲止編寫的代碼。 – 2011-04-14 21:17:12

+0

con = cx.connect()cur = con.cursor()printer = cur.execute(sqlcode) con.commit() – Khwaishien 2011-04-14 21:20:03

+1

該代碼對「printer」(應該稱爲query_result)沒有任何作用。如果它是隻讀查詢,則不需要'commit()'。讓你的代碼到你可以將查詢結果打印到stdout的階段。然後問一個關於創建csv等文件的非常獨立的任務。 – 2011-04-14 23:00:18

回答

11

也許使用CSV模塊(從標準庫):

import csv 
cursor = connection.cursor() # assuming you know how to connect to your oracle db 
cursor.execute('select * from table_you_want_to_turn_to_csv') 
with open('output_file.csv', 'wb') as fout: 
    writer = csv.writer(fout) 
    writer.writerow([ i[0] for i in cursor.description ]) # heading row 
    writer.writerows(cursor.fetchall()) 

如果你有數據的負載,展開的使用fetchall()成一個圈。

快樂的小道!

+3

始終以二進制模式使用Python2打開csv文件。在Python3中,使用'newline ='''。 – 2011-04-15 02:13:28

+0

好點約翰補充說。 (我只是看看http://bugs.python.org/issue4847#msg82661) – jsw 2011-04-15 03:40:32

+0

另外,是否有可能提取表格標題以及它? – Khwaishien 2011-04-18 17:14:00

2

創建XLS文件,從python-excel項目中使用xlwt模塊。

1

對於非python解決方案,Tom Kyte使用PL/SQL(UTL_FILE),SQL * Plus和Pro * C爲generating CSV files提供了一些優秀的腳本。

相關問題