前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Oracle导出到csv文件的脚本-Python程序方法

关于Oracle导出到csv文件的脚本-Python程序方法

作者头像
python与大数据分析
发布2022-03-11 17:07:03
1.5K0
发布2022-03-11 17:07:03
举报
文章被收录于专栏:python与大数据分析

cx_Oracle 是一个用户访问 Oracle 数据库的 Python 扩展模块。它符合Python数据库API 2.0规范,并增加了相当多的内容和几个排除项。

cx_Oracle 已经在Python 3.6到3.9版本中进行了测试。用户可以将cx_Oracle与Oracle 11.2, 12c, 18c, 19c和21c客户端库一起使用。

关于cx_Oracle详情参见:

https://cx-oracle.readthedocs.io/en/latest/index.html

Oracle的官方文档一直是最全的,从高阶的到底层,从数据库、中间件、云计算等无所不包,cx_Oracle的官方文档也是秉承这种风格。

代码如下

代码语言:javascript
复制
import csv
import cx_Oracle
# 建立数据库连接
connection  = cx_Oracle.connect(user="wbq", password="Wbq197711",dsn="localhost/orcl2")
curlist = connection.cursor()
# 读取导出配置表
sql = "SELECT a.Step,a.RuleType,a.RuleName,a.TableName,a.ExportSQL,a.CSVFileName FROM ProblemToCSVConfig a"
curlist.execute(sql)
# 获取相关配置信息
for row_data in curlist:
  vStep, vRuleType, vRuleName, vTableName, vExportSQL, vCSVFileName=row_data
  print('---------------{} 开始导出到 {} 中---------------'.format(vTableName,vCSVFileName))
  # 开始写文件
  with open(vCSVFileName,'w',newline='') as outputfile:
    output = csv.writer(outputfile, dialect='excel')
    # 建立新游标
    curcsv=connection.cursor()
    curcsv.execute(vExportSQL)
    colnames=[]
    # 生成文件标题
    for col in curcsv.description:
      colnames.append(col[0])
    output.writerow(colnames)
    # 生成文件数据
    for rowdata in curcsv:  
      output.writerow(rowdata)
    outputfile.close()
    print('---------------{} 完成导出到 {} 中---------------'.format(vTableName, vCSVFileName))

之前写过一篇公众号是:Oracle导出文本文件的三种方法

里面提到了一、常见的spool方法;二、UTL_FILE包方法;三、sqluldr2工具

实际上sqluldr2工具最为高效但却不是标准工具,Python程序方法灵活性最高,spool方法最简单但最慢,UTL_FILE需要有服务器目录权限。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python与大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 之前写过一篇公众号是:Oracle导出文本文件的三种方法
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档