ich krieg einfach nicht raus, wie ich Transaktionen mache mit cx_Oracke.
so funktionierts leider nicht
ich krieg die constraints um den kopf geworfen...
Code: Alles auswählen
con=cx_Oracle.connect(user=cDB_user, password=cDB_pass, dsn=cDB_name, twophase="yes")
transaction = con.begin()
cursor=con.cursor()
inserts = []
updates = []
for item in collect.devices_new_dhcp:
query="select ipaddress from lhcb_ipinfo where ipname = '"+lower(item.devicename)+"'"
cursor.execute(query)
entry = cursor.fetchall()
if(entry != None and len(entry) > 0):
#update
#print entry
inserts.append( "UPDATE lhcb_ipinfo ipaddress VALUES('"+item.CIPadd+"') WHERE ipname = '"+lower(item.devicename)+"'" )
else:
#insert
updates.append( "INSERT INTO lhcb_ipinfo (ipaddress, subnet_info, ipname) VALUES('"+item.CIPadd+"', '255.255.0.0', '"+lower(item.devicename)+"')" )
for q in updates:
cursor.execute(q)
i += 1
for q in inserts:
cursor.execute(q)
i += 1
transaction.commit(1)
#ToDo: Erfolgskontrolle
cursor.close()
con.close()
danke
ciao