資源簡介
用python導出oracle表百萬表記錄到EXCEL.py(python2excel)
代碼片段和文件信息
用python導出oracle表百萬表記錄到EXCEL
有這么個需求,需要把數據庫里的表按照以下格式導出來:
1.目錄頁有序號,表名,備注、三列。
2.每個表一個sheet頁,包含列序號、字段編碼、字段名、數據類型、是否必須。
3.目錄頁有表名超鏈接到對應的sheet頁,每個sheet頁能夠返回目錄頁
解決方案:
用cx_Oracle包連接數據庫,拼出sql。
用xlwt把sql查詢結果寫入excel。
獲得最后的xls。
準備:
安裝ananconda
安裝cx_Oracle、xlwt
pip?install?cx_Oracle?
pip?install?xlwt
查詢sql
代碼如下:
#?coding=utf-8
import?os.path
import?cx_Oracle
import?xlwt
import?sys
import?urllib
import?os
import?time
#?連接數據庫
def?connectDB(dbname=‘orcl‘):
????if?dbname?==?‘orcl‘:
????????connstr?=?‘orcl/orcl@127.0.0.1/vbmdb‘
????db?=?cx_Oracle.connect(connstr)
????return?db
????#?查詢
def?sqlSelect(sqldb):
????#?include:select
????cr?=?db.cursor()
????cr.execute(sql)
????rs?=?cr.fetchall()
????cr.close()
????return?rs
#?數據庫連接
db?=?connectDB()
????#?select?the?result:
print(“?begin?loading?DATA?\n“)
#獲取表名備注
v_sql?=?“select?S.table_nameS.commentsrank()over(order?by?table_name)?from?dba_tab_comments?s?where?s.owner?in?(‘ORCL‘)?AND?(S.table_name?not?like?‘%BIN%‘???AND?S.table_name?not?like?‘%SYS%‘???AND?S.table_name?not?like?‘%TMP%‘??)??AND?S.table_type?=?‘TABLE‘??and?s.comments?is?not?null??ORDER?BY?table_name“
v_book?=?sqlSelect(v_sqldb)
#print(v_book)
book?=?xlwt.Workbook()
v_file_name?=?‘表結構.xls‘
#插入目錄頁
sheet_index?=?book.add_sheet(‘目錄‘)
sheet_index.write(0?0?‘序號‘)
sheet_index.write(0?1?‘名稱‘)
#根據列名、備注
評論
共有 條評論