UPDATEコマンドは、アナリティック・ワークスペースの変更内容を、一時領域からワークスペースが格納されているデータベース表に移動するコマンドです。通常、UPDATE文は、アナリティック・ワークスペースでの変更作業が終了してから使用しますが、進捗に応じて定期的に指定することもできます。
変更内容は、Oracle OLAPまたはSQLのどちらかでCOMMIT文を実行するまで保存されません。UPDATEおよびCOMMITコマンドを使用しなかった場合、セッション中に行ったアナリティック・ワークスペースの変更内容は、Oracleセッションの終了時に廃棄されます。
注意: 変更がコミットされていない場合でも、その変更を維持したままでアナリティック・ワークスペースをデタッチおよび再アタッチできます。これは、デタッチおよび再アタッチが単一のデータベース・セッション内で行われるためです。 |
パラメータ
パラメータを指定しなかった場合、このコマンドによって更新されるのは、読取り/書込み非排他モードおよび読取り/書込み排他モードでアタッチされているすべてのアナリティック・ワークスペース、マルチライタ・モードでアタッチされているすべてのアナリティック・ワークスペースに存在するすべての取得したオブジェクト(つまり、取得したすべての変数、リレーション、値セットおよびディメンション)です。
マルチライタ・モードでアタッチされているアナリティック・ワークスペースに存在する、取得済オブジェクトの名前をカンマで区切ったリスト。これらのオブジェクトは、ACQUIRE文を使用して取得した任意のオブジェクトです。
パーティション変数の個々のパーティションを指定するには、次の構文を使用します。
variable_name (PARTITION partition_name [, PARTITION partition_name ]...)
重要: 取得して保持したディメンションによってオブジェクトをディメンション化した場合は、このディメンションを最初に更新しないかぎり、オブジェクトを更新することはできません。 |
読取り/書込みモードまたはマルチライタ・モードでアタッチした1つ以上のワークスペースの、カンマで区切られた名前のリスト。
使用上の注意
自動によるCOMMIT
ユーザーの多くは、SQL*PlusまたはOLAP Worksheetを使用してDML文を実行します。これらのツールはどちらも、セッションの終了時に自動でCOMMIT文を実行します。
UPDATE実行時におけるプログラム実行のトリガー
TRIGGERコマンドを使用すると、UPDATE文を、OLAP DMLプログラムを自動的に実行するイベントにすることができます。詳細は、「トリガー・プログラム」を参照してください。
共有ワークスペース
共有ワークスペースをアタッチし、別のユーザーが読取り/書込みアクセス権を保持している場合、別のユーザーのUPDATEおよびCOMMITコマンドは、使用中のワークスペース・ビューには影響しません。データのビューは、ワークスペースをアタッチした時点と同じままです。別のユーザーが行った変更にアクセスするには、ワークスペースをいったんデタッチしてから再アタッチします。
ROLLBACK文の影響
OLAP DMLには、SQL ROLLBACK
文を発行するための手段が用意されていませんが、セッション中にOracle OLAPの外部から(たとえば、PL/SQLを介して)これを実行できます。セッション中にROLLBACK
文を実行すると、Oracle OLAPは、アタッチされたワークスペースに未コミット状態の更新内容があるかどうかを確認します。
未コミット状態の更新内容があると(つまり、変更してUPDATE文を実行したが、その後にCOMMIT文を実行していない場合)、Oracle OLAPは変更内容を廃棄してワークスペースをデタッチします。
未コミット状態の更新内容がない場合、Oracle OLAPはROLLBACK
文に応答した処理を行いません。そのため、最後に発行したCOMMIT文以降にUPDATE文を発行していない場合、Oracle OLAPでは何の処理も実行されず、セッション中の変更内容はすべてワークスペースに保持されます。
セーブポイントにロールバックし、このセーブポイント以降に発生した未コミット状態の更新内容がある場合、Oracle OLAPはこれらの更新内容を廃棄して、ワークスペースをデタッチします。セーブポイント以前に発生した未コミット状態の更新内容はワークスペース内に保持されているため、同じセッションでワークスペースを再アタッチすると、これらの更新内容を参照できます。