Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
906
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Канонический способ заключается в использовании встроенного итератора курсора.
curs.execute('select * from people')
for row in curs:
print row
Вы можете использовать fetchall() , чтобы получить все строки сразу.
for row in curs.fetchall():
print row
Это может быть удобно использовать для создания списка Python, содержащего возвращаемые значения:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Это может быть полезно для небольших наборов результатов, но может иметь плохие побочные эффекты, если набор результатов большой.
Вам нужно дождаться, пока весь результирующий набор будет возвращен ваш клиентский процесс.
Вы можете съесть много памяти в вашем клиенте, чтобы удержать ее составленный список.
Это может занять некоторое время для Python, чтобы построить и деконструировать список, который вы собираетесь сразу же отбросить в любом случае.
Если вы знаете, что в результирующем наборе возвращается одна строка, вы можете вызвать fetchone() , чтобы получить одну строку.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Наконец, вы можете выполнить цикл над результирующим набором, извлекая по одной строке за раз. В общем, нет никакого особого преимущества в этом по сравнению с использованием итератора.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()
Я предпочитаю итератор курсора, но сначала устанавливаю свойство arraysize курсора.
curs.execute('select * from people')
curs.arraysize = 256
for row in curs:
print row
В этом примере cx_Oracle будет извлекать строки из Oracle 256 строк за один раз, уменьшая количество сетевых обходов, которые необходимо выполнить
Есть также способ, которым psyco-pg , кажется, делает это... Из того, что я понял, похоже, что он создает словарные прокси-строки для отображения поиска ключа в блок памяти, возвращаемый запросом. В этом случае получение полного ответа и работа с аналогичной прокси-фабрикой по строкам кажется полезной идеей. Хотя, если подумать, это больше похоже на Lua, чем на Python.
Кроме того, это должно быть применимо ко всем интерфейсам PEP-249 DBAPI2.0 , а не только к Oracle, или вы имели в виду только самое быстрое использование Oracle ?