python - 使用 Python 连接到 Oracle 数据库并以 CSV 格式导出数据
问题描述
我想将 oracle 数据库连接到 python 并使用 select 语句无论我得到什么结果,我都希望将该结果导出为 sftp 位置的 csv 文件。
我知道我们可以使用 cx_oracle 包将 oracle 与 python 连接起来。
但我关心的是从 oracle 获取数据到 csv 并将其导出。
另请注意,我的数据更大。
任何人都可以帮助我获得也可以快速的解决方案。
提前致谢。
解决方案
从这样的事情开始,然后进行更改以满足您的要求:
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。
推荐阅读
- python - 通过 pip install 使用 gdal 时出现内置轮错误
- jsf - 图像在 p:galeria 中错误地重复
- java - 如何在 Spring Data Couchbase 中使用 CouchbaseTemplate 中的键前缀
- angular - 没有 TranslateService 的提供者
- blueprism - 如何将桌面应用程序中下拉列表的所有元素放入蓝色棱镜中的集合中
- python - 将字母转换为有值的数字
- xamarin - Xamarin Forms iOS 和 Android 非常轻量(细)字体
- c# - 如何在c#中检查一个对象是否没有空属性
- c# - 具体来说,在 Unity 中,await 从字面上返回到“哪里”?
- r - 如何按组保留值(删除 NA)?