バージョン対応ビューによる Oracle のバージョン対応登録されたデータの読み取り
バージョン対応ビューに対して SQL SELECT ステートメントを実行することで、バージョン対応登録されたデータにアクセスできます。
バージョン対応ビューは、DEFAULT バージョンが参照しているステートに自動的にアクセスします。バージョン対応ビューに対して SELECT ステートメントを実行すると、DEFAULT バージョンが参照しているステートにアクセスします。他のユーザが編集データを DEFAULT バージョンにコミットしている場合(そのため、DEFAULT バージョンが参照するステートが変化している場合)、その後のクエリには最新のステートおよびステートの編集データが表示されます。
DEFAULT バージョン以外のバージョンをクエリする場合や、DEFAULT バージョンに対するクエリのステートを変化させたくない場合は、version_util.set_current_version ユーティリティを実行します。このユーティリティは指定されたバージョン名を検証して、該当するデータベースのステートを内部的に設定します。version_util.set_current_version を実行すると、バージョンに対して行われるクエリは、常にバージョンが参照していたステートを指すようになります。
version_util.set_current_version は SQL クライアントから直接実行できます。構文は次のとおりです。
EXEC sde.version_util.set_current_version('<version_name>')
必要に応じてこのユーティリティを再度呼び出して別のバージョンに変更することもできます。また、ワークスペースが更新されるたびにアプリケーションから呼び出して、バージョン対応登録されたテーブルが参照しているステートを取得することもできます。
-
アクセスするバージョン対応登録されたフィーチャクラスまたはテーブルに対して、バージョン対応ビューが存在することを確認します。
ArcGIS 10.1 からは、バージョン対応ビューはデータをバージョン対応登録するときに作成されます。10.1 より前のバージョンでバージョン対応登録されたデータは、[バージョン対応ビューの作成(Create Versioned View)] ジオプロセシング ツールを実行して、バージョン対応ビューを作成できます。
-
SQL プロンプトで、version_util.set_current_version ユーティリティを実行して、クエリするバージョンを設定します。
この例では、マスタ sde ジオデータベース内でクエリされるバージョンとして version2 が設定されています。これをユーザ スキーマ ジオデータベース内のバージョンに対して実行する場合、ユーティリティの先頭にジオデータベース所有者の名前が付きます。
EXEC sde.version_util.set_current_version('version2')
-
バージョン対応ビューに対して SELECT ステートメントを発行して、ジオデータベースからバージョン対応登録されたデータを読み取ります。
この例では、バージョン対応ビューは code_mv です。
SELECT violationID,codenum,propowner,insp_date FROM code_mv WHERE zip = '99999';
DEFAULT バージョンの現在の状態をクエリするように戻す必要がある場合は、set_default プロシージャを実行します。
EXEC sde.version_util.set_default();