Python - Как зациклить ResultSet - PullRequest
0 голосов
/ 24 октября 2019

Я работаю с 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 ()"?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...