Чтобы вставить несколько строк, посмотрите примеры cx_Oracle BindInsert.py , BatchErrors.py и ArrayDMLRowCounts.py , которые все вставляют несколько строк одним executemany()
звонок.
rows = [ (1, "First" ),
(2, "Second" ),
(3, "Third" ),
(4, "Fourth" ),
(5, "Fifth" ),
(6, "Sixth" ),
(7, "Seventh" ) ]
cursor = connection.cursor()
cursor.executemany("insert into mytab(id, data) values (:1, :2)", rows)
В примерах показаны операторы DML (INSERT и т. Д.), Но вы также можете несколько раз вызвать блок PL / SQL с разными параметрами с помощью executemany()
.
Использование executemany()
будет на лот быстрее, чем повторные вызовы на execute()
.
Существует больше информации и примеров (включая PL / SQL) о executemany()
в Эффективное и масштабируемое выполнение пакетных операторов в Python cx_Oracle