Oracle11gでPL/SQLプロシージャを作成しました。truncate
、create
またはステートメントはありませんcommit
が、セッションはまだコミットされています。SQLDeveloperとPL/SQLDeveloperを使用しています。
誰かがどのステートメントがプロシージャまたは関数内のコミットにつながるか教えてもらえますか?
Oracle11gでPL/SQLプロシージャを作成しました。truncate
、create
またはステートメントはありませんcommit
が、セッションはまだコミットされています。SQLDeveloperとPL/SQLDeveloperを使用しています。
誰かがどのステートメントがプロシージャまたは関数内のコミットにつながるか教えてもらえますか?
すべてのDML文(INSERT / DELETE / UPDATE / MERGE)はPL/SQLでコミットされません。
ステートメントが失敗した場合でも、すべてのDDLステートメントはコミットします(ALTER / CREATE ...)。DDLを実行する動的ステートメント(EXECUTE IMMEDIATE)を実行している場合、これによってトランザクションもコミットされます。
一部のDBMSパッケージには、 DBMS_STATSなどのコミットするプロシージャもあります。それらすべてをリストするのは非常に面倒です。DBMSパッケージを使用している場合は、適切なドキュメントをお読みください。