4

Oracle11gでPL/SQLプロシージャを作成しました。truncatecreateまたはステートメントはありませんcommitが、セッションはまだコミットされています。SQLDeveloperとPL/SQLDeveloperを使用しています。

誰かがどのステートメントがプロシージャまたは関数内のコミットにつながるか教えてもらえますか?

4

1 に答える 1

6

すべてのDML文(INSERT / DELETE / UPDATE / MERGE)はPL/SQLでコミットされません。

ステートメントが失敗した場合でも、すべてのDDLステートメントはコミットします(ALTER / CREATE ...)。DDLを実行する動的ステートメント(EXECUTE IMMEDIATE)を実行している場合、これによってトランザクションもコミットされます。

一部のDBMSパッケージには、 DBMS_STATSなどのコミットするプロシージャもあります。それらすべてをリストするのは非常に面倒です。DBMSパッケージを使用している場合は、適切なドキュメントをお読みください。

于 2012-06-05T09:28:25.227 に答える