cx_oracle удаление с исполнением?

как эквивалент cx_Oracle.executemany, что я мог бы использовать для исключения?

В очень простом примере я использую этот блок кода для вставки данных, но можно ли это сделать для удаления записей?

try:

    con = None

    con = cx_Oracle.connect(uid , pwd, dsn)
    cur = con.cursor()
    cur.executemany(sql,params)
    con.commit()

except cx_Oracle.DatabaseError, e:

        print 'Error %s' % e
        sys.exit(1)

finally:

    if con:

        con.close()

person thclpr    schedule 11.01.2013    source источник


Ответы (1)


DB-API поддерживает удаление нескольких строк с помощью executemany(). У меня нет под рукой базы данных Oracle, но ниже приведен проверенный пример с использованием SQLite:

import sqlite3
conn = sqlite3.connect(':memory:')
conn.execute('create table t (c);')
conn.executemany("insert into t values (?);", ('a','b','c',))
conn.execute('select c from t;').fetchall()
# -> [(u'a',), (u'b',), (u'c',)]
conn.executemany('delete from t where c = ?;', ('a','b',))
conn.execute('select c from t;').fetchall()
# -> [(u'c',)]
conn.close()
person mechanical_meat    schedule 11.01.2013