我需要帮助解决这个错误。
我编写了这个脚本来查询Oracle表并将其所有内容转储到带有.xlsx格式的excel。但几分钟后我得到的错误只显示MemoryError。
我认为数据库表很大,但没有那么大,我的计算机无法处理它,它有大约500,000行。 我正在使用write_only = True方法来处理大型excel文件。 这是我的python代码的摘录:
import sys
import cx_Oracle
from openpyxl import Workbook, load_workbook
#####OracleConnectionStuff...
curs = orcl.cursor()
sql = "select * from 500KrowsTable"
curs.execute(sql)
wb = Workbook(write_only=True)
ws = wb.create_sheet()
for row_data in curs:
ws.append(row_data)
wb.save("tableData.xlsx")
我一直这样得到MemoryError:
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "xlsxGenerator.py", line X, in <module>
create_xlsx(tableName, fileName)
File "xlsxGenerator.py", line X, in create_xlsx
ws.append(row_data)
File "DIR\Python\Python36-32\lib\site-packages\openpyxl\worksheet\write_only.py", line X, in append
self.writer.send(row)
File "DIR\Python\Python36-32\lib\site-packages\openpyxl\worksheet\write_only.py", line X, in _write_header
cell = WriteOnlyCell(self)
File "DIR\Python\Python36-32\lib\contextlib.py", line X, in __exit__
next(self.gen)
File "DIR\Python\Python36-32\lib\site-packages\et_xmlfile\xmlfile.py", line X, in element
parent.append(self._top_element)
MemoryError