• 大小: 3.28KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-05-10
  • 语言: Python
  • 标签: python  Excel  CE  py  

资源简介

用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 ‘名称‘)
#根据列名、备注

评论

共有 条评论