ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

SQL を使用してバージョン対応登録されたデータを編集する方法の概要

  • 編集オプション

SQL クライアントからバージョン対応登録された (トラディショナル) データを編集するには、ベース (ビジネス) テーブル自体ではなく、データのバージョン対応ビューを編集する必要があります。従来のバージョン対応登録されたテーブルは変更内容を記録するために、ADD テーブルと DELETE テーブル (まとめて差分テーブルと呼びます) という 2 つの関連テーブルを使用します。テーブルのバージョン対応ビューを編集するとき、編集データは ADD テーブルと DELETE テーブルに書き込まれます。ベース テーブルを直接編集すると、この書き込み処理が行われないため、レコードが孤立したりデータが損失したりする可能性があります。

バージョン対応ビューに対して SQL データ操作ステートメントを実行する場合、それぞれの種類のステートメントについて、データベースで次の処理が発生します。*

  • 挿入: 基のベース テーブルの ADD テーブルに行が追加され、新しい行の object ID 値が自動的に生成されます。
  • 更新: 更新は、実際には、元の行を削除して、新しい情報を持つ新しい行を追加します。そのため、UPDATE ステートメントを実行すると、基のベース テーブルの ADD テーブルと DELETE テーブルの両方に行が追加されます。
  • 削除: 基のベース テーブルの DELETE テーブルに行が追加されます。

* ステート 0 を指しているデフォルト バージョンを編集している場合は、すべての編集データがすぐにベース テーブルに移されます。

SQL による編集の場合、内部でバージョンのリコンサイルは実行されないので注意してください。そのため、編集を終了したら、ArcGIS Desktop または Python スクリプトを使用して、編集データを親バージョンとリコンサイルする必要があります。

編集オプション

新しい名前付きジオデータベース バージョンを作成してそのバージョンを編集することも、デフォルト バージョンを直接編集することもできます。どちらを行うかは、システムの要件に依存します。優れたパフォーマンスとスケーラビリティを実現するには、名前付きバージョンとデフォルト バージョンのどちらを編集するか、適切なモデルを選択することが大切です。

名前付きバージョンの編集

システムが次に当てはまる場合、名前付きバージョンを作成し、SQL を使用してバージョン対応ビューで編集します。

  • 複数の編集者が同じデータを変更しなくてはならない場合。
  • 明確に定義された品質管理プロセスが必要な場合。
  • 他のユーザーが変更内容をすぐに利用できなくてもかまわない場合。変更内容をリコンサイルおよびポストするまでは、個別に作業できる場合。
  • 編集するバージョン対応フィーチャクラスが、バイナリ ジオメトリ格納タイプを使用している場合。
  • 編集するバージョン対応登録されたフィーチャクラスまたはテーブルが、編集データをベーステーブルに移行するオプションを選択した状態でバージョン対応登録されている場合。

バージョン対応ビューで編集するとき、編集データは ADD テーブルおよび DELETE テーブルに記録されます。編集データは、名前付きバージョンが参照しているステートに書き込まれます。

以下に名前付きバージョンのデータを編集する場合の手順を示します。記載どおりの順序で行ってください。

  1. バージョン対応登録されたテーブルまたはフィーチャクラスのバージョン対応ビューが存在しない場合は作成します。
  2. 編集作業用のジオデータベース バージョンを作成します。
  3. set_current_version プロシージャを使用して、新しいバージョンにアクセスします。これにより、編集セッションが参照するステートが名前付きバージョンが参照しているステートに設定され、このバージョンがロックされます。
  4. edit_version プロシージャまたはデータベースに適した関数を実行して、編集セッションを開始します。
  5. SQL を使用してバージョン対応ビューに対して編集を実行します。
  6. データベースの編集をコミットまたはロールバックします。
  7. edit_version プロシージャまたはデータベースに適した関数を実行して、編集セッションを終了します。
  8. ArcGIS で編集内容をリコンサイルしてポストします。
  9. ArcGIS を使用して親バージョンにすべての変更をポストしたら、バージョン対応ビューでの編集用に作成したバージョンは削除できます。

デフォルト バージョンの編集

システムが次の 1 つ以上に当てはまる場合は、SQL を使用してバージョン対応ビューでデフォルト バージョンを編集できます。

  • 編集にショート トランザクションを用いる場合。
  • バージョン対応ビューで行われた編集データを他のユーザーがただちに利用できるようにする必要がある場合。
  • フィーチャクラスの編集時に、フィーチャクラスがバイナリ ジオメトリ格納ではなく、SQL 空間タイプを使用する場合。
  • 編集するテーブルまたはフィーチャクラスが、編集データをベーステーブルに移行するオプションを選択した状態でバージョン対応登録されていない場合。
  • 編集するデータは複製されません。複製されたデータのデフォルト バージョンを編集する場合、編集データは同期化されません。

デフォルト バージョンを編集する場合は、名前付きバージョンと同様に、編集データが差分テーブルに記録されます。ただし、デフォルト バージョンを編集すると、デフォルト バージョンを表示しているすべてのユーザーが編集データを参照できるようになります。

デフォルト バージョンがステート 0 を参照している場合、各編集データはバージョン対応登録されたテーブルまたはフィーチャクラスのベース テーブルに直接適用されます。デフォルト バージョンが ArcGIS クライアントで編集されると、保存時に新しいデータベースのステートを参照するようにバージョンが更新されます。バージョン対応ビューでデフォルト バージョンを直接編集すると、挿入、更新、削除の各処理は、デフォルト バージョンが参照している現在のステートに書き込まれます。

たとえば、デフォルト バージョンが ArcGIS クライアントで更新され、複数の変更がバージョン対応ビューで実行されている場合は、バージョン対応ビューによって加えられた変更が複数のステートに適用される可能性があります。

コミットされた編集はただちに以下のユーザーやアプリケーションからアクセスできるようになります。

  • バージョン対応登録されているテーブルとデフォルト バージョンを操作しているユーザーまたはアプリケーション
  • デフォルト バージョンの現在のステートを含むステート系統が設定された子バージョンを操作しているユーザーまたはアプリケーション
詳細:

バージョン対応ビューによってデフォルト バージョン内で変更中の行が、デフォルト バージョンの現在のステートに依存するステートの別バージョンで変更されている場合、バージョン対応ビューは新しいジオデータベースのステートを作成し、新しいステートを参照するようにデフォルト バージョンを更新してから、編集を実行します。これは、変更中の行 (デフォルト バージョンのステートに依存するステートでも変更された行) が圧縮処理で上書きされたり、下位のステートのバージョンがデフォルト バージョンにリコンサイルされた場合に上書きされたりしないようにするためです。

バージョン対応ビューでデフォルト バージョンのジオデータベース内のデータを編集する場合は、バージョンを設定したり、編集セッションを開始したりしないでください。実行手順は次のとおりです。

  1. バージョン対応登録されたテーブルまたはフィーチャクラスのバージョン対応ビューが存在しない場合は作成します。
    メモ:

    バージョン対応ビューが ArcGIS 10.1 以前で作成されている場合は、再作成する必要があります。古いバージョン対応ビューをデフォルト バージョンで編集することはできません。

  2. SQL を使用してバージョン対応ビューに対して編集を実行します。デフォルト バージョンの現在のステートが自動的に編集されることになります。
  3. データベースの編集をコミットまたはロールバックします。トランザクションが開いているとき、差分テーブルには排他ロックがかかっているため、各編集の後にコミットまたはロールバックすることをお勧めします。ロックは、トランザクションが終了するまで解除されません。

関連トピック

  • バージョン対応ビューとは

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2021 Esri. | プライバシー | リーガル