Я работаю с Python и JayDeBeApi для подключения к базе данных типа Oracle.
В операторах SELECT мне нужно получить около 10+ тысяч записей.
В первомКогда я закончил, используя метод «fetchAll ()», но это загружает мою память, и я не хотел бы, чтобы это произошло.
Я получаю курсор, используя код ниже:
def do_select(sql, db_conn):
resultSet = None
try:
cursor = db_conn.cursor()
cursor.execute(sql)
resultSet = {
"cursor": cursor,
"columns": cursor.description
}
except Exception as error:
print("An error occurred" + str(error))
return resultSet
И вместо с использованием этого типа кода:
resultSet = self.do_select(sql, self.get_db_conn())
rows = resultSet["cursor"].fetchAll()
for row in rows:
# Do something...
Я хотел бы сделать что-то вроде этого:
resultSet = self.do_select(sql, self.get_db_conn())
while resultSet.next():
entire_row_tuple = resultSet.getCurrent() #I don't know if this is possible in python
#Do something with entire_row_tuple...
Возможно ли это впитон? Или существует лучший способ вместо использования метода "fetchAll ()"?
Спасибо