首页 > 解决方案 > 使用 Python 连接到 Oracle 数据库并以 CSV 格式导出数据

问题描述

我想将 oracle 数据库连接到 python 并使用 select 语句无论我得到什么结果,我都希望将该结果导出为 sftp 位置的 csv 文件。

我知道我们可以使用 cx_oracle 包将 oracle 与 python 连接起来。

但我关心的是从 oracle 获取数据到 csv 并将其导出。

另请注意,我的数据更大。

任何人都可以帮助我获得也可以快速的解决方案。

提前致谢。

标签: pythonpython-3.xoraclecx-oracle

解决方案


从这样的事情开始,然后进行更改以满足您的要求:

import cx_Oracle
import csv
import sys, os

if sys.platform.startswith("darwin"):
    cx_Oracle.init_oracle_client(lib_dir=os.environ.get("HOME")+"/Downloads/instantclient_19_8")

connection = cx_Oracle.connect(user='cj', password='cj', dsn='localhost/orclpdb1')
cursor = connection.cursor()
cursor.arraysize = 5000

with open("testpy.csv", "w", encoding='utf-8') as outputfile:
    writer = csv.writer(outputfile, lineterminator="\n")
    results = cursor.execute('select * from all_objects where rownum < 10000000 order by object_id')
    writer.writerows(results)

特别是,您需要调整该arraysize值。

请参阅调整 cx_Oracle


推荐阅读