Oracleでこれコミットしなくて良いの?って思った日
とあるテーブルにレコードをINSERT
INSERT後、確認のためにSELECT
INSERTのSQLファイルには「insert~」の一文しか入っていないにも関わらず、SELECTのSQLファイルを実行したらちゃんと更新されている。。。
SELECTのSQLファイルにもcommitは書いてない。。。
なんでだ…と思ってコミットタイミングを調べてみる
次のような状況では、Oracle Databaseによって暗黙的なCOMMIT
が発行されます。
DDL…?
SELECTのSQLファイルをよく見てみると
ALTER SESSION SET NLS_DATE_FORMAT = 'RR/MM/DD HH24:MI:SS';
みたいなDDLを打っていた
(対象のテーブルに日付カラムがあったから)
なるほど納得
commitを明示的に打たなくてもこういうDDLを打っておくことで暗黙的にcommitできるのは便利かも