プライマリ・コンテンツに移動
Pro*C/C++プログラマーズ・ガイド
12c リリース1(12.1)
B71397-03
目次へ移動
目次
索引へ移動
索引

前
次

COMMIT (実行可能埋込みSQL)

用途

データベースの変更内容をすべて確定し、またオプションですべてのリソースを解放して切断し、現行のトランザクションを終了します。

前提条件

カレント・トランザクションをコミットするために必要な権限はありません。

ユーザーがコミットしたインダウトの分散トランザクションを手動でコミットするには、FORCE TRANSACTIONのシステム権限が必要です。他のユーザーがコミットしたインダウトの分散トランザクションを手動でコミットするには、FORCE ANY TRANSACTIONのシステム権限が必要です。

構文

キーワードおよびパラメータ

キーワードおよびパラメータ 説明

AT

どのデータベースに対してCOMMIT文を発行するかを指定します。次のいずれかを使用してデータベースを指定します。

db_name: DECLARE DATABASE文を使用して事前に宣言したデータベース識別子。

host_variable: 値がdb_nameのホスト変数。この句を省略した場合、Oracleはデフォルトのデータベースに対して文を発行します。

WORK

標準SQLへの準拠のためにのみサポートされています。COMMIT文とCOMMIT WORK文は同等です。

COMMENT

現行のトランザクションに対応付けるコメントを指定します。'text'は50文字以内の引用符付きリテラルで、トランザクションがインダウトになった場合に、Oracleによりデータ・ディクショナリ・ビューDBA_2PC_PENDINGにトランザクションIDとともに格納されます。

RELEASE

リソースをすべて解放し、アプリケーションをサーバーから切断します。

FORCE

インダウトの分散トランザクションを手動でコミットします。トランザクションは、ローカル・トランザクションIDまたはグローバル・トランザクションIDを含む'text'により指定します。このようなトランザクションのIDを検索するには、データ・ディクショナリ・ビューDBA_2PC_PENDINGに問合せをします。また、オプションの整数を使用してトランザクションにシステム変更番号(SCN)を明示的に割り当てることができます。integerを省略した場合、トランザクションはカレントSCNを使用してコミットされます。

使用上の注意

プログラムの最後のトランザクションは、COMMITコマンドまたはROLLBACK文およびRELEASEオプションを使用して、必ず明示的にコミットまたはロールバックしてください。プログラムが異常終了すると、Oracleは自動的に変更をロールバックします。

COMMIT文は、ホスト変数やプログラムの制御の流れには影響しません。この文の詳細は、データベースの概要を参照してください。

この例では、埋込みSQL COMMIT文の使用方法を示します。

EXEC SQL AT sales_db COMMIT RELEASE;

関連項目