Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2012 16:01:07

mid.tier
От:
Зарегистрирован: 2012-02-24
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

python 2.7 cx_Oracle executemany

Доброго всем времени суток.
Есть таблица в базе Oracle, куда хочется записать большой объем примитивныданных (числа, строки). Данные представлены в виде списка словарей. Таблица (t) имеет PK (столбец a1) на основе последовательности s. При вставке записи, значение ключа необходимо сохранить для дальнейшей обработки в приложении.
Вопрос: возможно-ли выполнение вставки путем применения скрипта

 insert into t( a1, a2, a3) values (s.nextval, :n, :s) returning into :a1
через метод executemany для курсора? Как правильно определить переменную для сохранения значения? При передаче в executemany списка из словарей с переменными (var), включая :a1 приложение полностью “падает”. Окружение: cx_oracle 5.1, python 2.7, XP sp3.



Отредактировано mid.tier (Июнь 3, 2012 16:26:39)

Офлайн

#2 Июль 5, 2012 08:36:37

mid.tier
От:
Зарегистрирован: 2012-02-24
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

python 2.7 cx_Oracle executemany

Отвечу сам:

Если через executemany выполнять предложение SQL, содержащее SELECT, то получим сообщение об ошибке что select-ы не поддерживаются. Видимо в cx_Oracle, есть какой-то баг, который приводит к падению без вывода этого сообщения при выполнении INSERT … RETURNING INTO.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version