Here's my code:
import cx_Oracle
conn = cx_Oracle.connect(usr, pwd, url)
cursor = conn.cursor()
cursor.execute("UPDATE SO SET STATUS='PE' WHERE ID='100'")
conn.commit()
If I remove the conn.commit()
, the table isn't updated. But for select statements, I don't need that conn.commit()
. I'm curious why?
The DB-API spec requires that connecting to the database begins a new transaction, by default. You must commit
to confirm any changes you make, or rollback
to discard them.
Note that if the database supports an auto-commit feature, this must be initially off.
Pure SELECT
statements, since they never make any changes to the database, don't have to have their changes committed.