利用python导出oracle数据库数据,每100万条数据导出为一个xslx表
时间: 2023-11-27 21:54:03 浏览: 47
可以使用Python中的cx_Oracle库连接Oracle数据库,使用pandas库将数据存储为Excel文件。以下是一个示例代码来实现这个任务:
```python
import cx_Oracle
import pandas as pd
# 数据库连接信息
dsn = cx_Oracle.makedsn(host='<HOST>', port=<PORT>, sid='<SID>')
connection = cx_Oracle.connect(user='<USERNAME>', password='<PASSWORD>', dsn=dsn)
# SQL查询语句
query = """
SELECT * FROM <TABLE>
"""
# 分批次导出数据
batch_size = 1000000
offset = 0
while True:
sql = f"{query} OFFSET {offset} ROWS FETCH NEXT {batch_size} ROWS ONLY"
df = pd.read_sql(sql, connection)
if df.empty:
break
df.to_excel(f"data_{offset//batch_size+1}.xlsx", index=False)
offset += batch_size
# 关闭数据库连接
connection.close()
```
在代码中,我们首先使用`cx_Oracle`库连接Oracle数据库,然后使用`pandas`库读取SQL查询语句的结果,并将结果存储为Excel文件。由于数据量可能很大,为了避免内存溢出,我们采用分批次导出数据的方式,每100万条数据导出为一个Excel文件。