Python の最近のバージョンでwith open('abc.txt') as f:
は、次の (インデントされた) コード ブロックで例外が発生した場合でも、ファイルが閉じられることを保証するようなものを使用できます。この手法が cx_Oracle 接続オブジェクトでも機能するかどうか疑問に思っていました。たとえば、次のコード ブロックでエラーが発生した場合にデータベース接続が確実に閉じられるようにするには、次のようにします。
with cx_Oracle.connect('uname/pwd@schema.db') as conn:
c = conn.Cursor()
c.execute("Select * from table1")
#...etc
現在、try...except...finally を使用してこれを達成できますが、私は with...as テクニックを好みます。