プライマリ・コンテンツに移動
SQL*Plus®ユーザーズ・ガイドおよびリファレンス
リリース1 (12.1)
B71396-03
目次へ移動
目次
索引へ移動
索引

前
次

データベースへの変更の自動保存について

SQLのデータ操作言語(DML)コマンド(UPDATE、INSERTおよびDELETE)を使用して、データベース内に格納されている情報に対して行う変更を指定できます。これらのコマンドは、単独かPL/SQLブロック内で使用できます。それらの変更は、SQLのCOMMITコマンド、データ制御言語(DCL)またはデータ定義言語(DDL)コマンド(CREATE TABLEなど)を入力するか、自動コミット機能を使用するまで確定されません。SQL*Plusの自動コミット機能は、指定した数のSQL DMLトランザクションが成功した後に、保留中の変更をコミットします(SQL DMLトランザクションとは、UPDATE、INSERT、DELETEのいずれかのコマンドまたはPL/SQLブロックのことです)。

自動コミット機能は、SQL*PlusのAUTOCOMMITシステム変数で指定します。AUTOCOMMITの設定にかかわらず、変更はSQL*Plusが正常に終了するとコミットされます。

COMMIT COMPLETE

自動コミット機能をONにした場合は、データベースへの変更をロールバックできません。

SQLのDMLコマンドを、一定の回数(たとえば、10回)実行した後にデータベースへの変更をコミットする場合は、次のように入力します。

SET AUTOCOMMIT 10

SQL*Plusでは、SQLのDMLコマンドが実行されるたびにカウントされ、10コマンドごとに変更がコミットされます。

注意:

この機能では、ブロックに含まれているSQLコマンドの実際の数には関係なく、1つのPL/SQLブロックが1つのトランザクションとみなされます。

自動コミット機能を再度OFFにするには、次のコマンドを入力します。

SET AUTOCOMMIT OFF

AUTOCOMMITがOFFに設定されたことを確認するには、次の形式でSHOWコマンドを入力します。

SHOW AUTOCOMMIT
AUTOCOMMIT OFF

詳細は、「SET AUTO[COMMIT]{ON | OFF | IMM[EDIATE] | n}」を参照してください。

例4-5 自動コミット機能をONにする方法

自動コミット機能をONにするには、次のように入力します。

SET AUTOCOMMIT ON

次のように入力することもできます。

SET AUTOCOMMIT IMMEDIATE

AUTOCOMMITの設定を変更するまで、データベースへの変更を指定するSQLの各DMLコマンドからの変更は、SQL*Plusで自動的にコミットされます。SQL*Plusでは、自動コミットを実行するたびに次のメッセージが表示されます。