2016-07-07 8 views
0

Wie alle Abfragen in einer Zeile auszuführen, anstatt getrennt von der Erstellung ausführen Betriebmehr Abfragen in Oracle-Datenbank unter Verwendung von Python

import cx_Oracle 

if__name__="__main__" 

try: 
    con = cx_Oracle.connect('arslanhaider/[email protected]:1521/XE')   
    cur = con.cursor()   
    cur.execute("CREATE TABLE Password(Username varchar(255),Password INT)")  
    cur.execute("INSERT INTO Password VALUES('arslanhaider',12345)") 
    cur.execute("INSERT INTO Password VALUES('arslanhaider95',123456)") 
    cur.execute("INSERT INTO Password VALUES('arslanhaider143',123457)") 
    cur.execute("INSERT INTO Password VALUES('arslanhaider123',123458)") 

    con.commit() 

except cx_Oracle.Error: 
    if con: 
     con.rollback() 
finally: 
    if con: 
     con.close() 

Antwort

0

Was Sie brauchen, sind cx_Oracle.Cursor.executemany, dies vor allem nützlich, wenn Bulk-Einsätze zu tun.

>>> create_table = """ 
CREATE TABLE python_modules (
module_name VARCHAR2(50) NOT NULL, 
file_path VARCHAR2(300) NOT NULL 
) 
""" 
>>> from sys import modules 
>>> cursor.execute(create_table) 
>>> M = [] 
>>> for m_name, m_info in modules.items(): 
... try: 
... M.append((m_name, m_info.__file__)) 
... except AttributeError: 
... pass 
... 
>>> len(M) 
76 
>>> cursor.prepare("INSERT INTO python_modules(module_name, file_path) VALUES (:1, :2)") 
>>> cursor.executemany(None, M) 
>>> db.commit() 
>>> r = cursor.execute("SELECT COUNT(*) FROM python_modules") 
>>> print cursor.fetchone() 
(76,) 
>>> cursor.execute("DROP TABLE python_modules PURGE") 

Beispielcode aus this Artikel entnommen

Verwandte Themen