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 を使用して Db2 でバージョン対応登録されたデータを編集

  • デフォルト バージョンの編集
  • 名前付きバージョンの編集
  • 名前付きバージョンの編集からデフォルト バージョンの編集への切り替え
  • 名前付きバージョンの編集のリコンサイルとポスト
複雑度:
初心者
データ要件:
独自データの使用

SQL を使用してバージョン対応登録された (トラディショナル) データを編集するには、バージョン対応ビューを使用する必要があります。バージョン対応ビューからデフォルト バージョンまたは名前付きバージョンを編集できます。各オプションの説明は、「SQL を使用してバージョン対応登録されたデータを編集する方法の概要」をご参照ください。

ほとんど場合、使用する編集モデルは 1 つだけです。ただし、同じシステムで両方を使用することも可能です。そのため、このワークフローでは、この 2 つの編集モデルの切り替え方法がわかるように、両方の使用方法を説明します。1 つのみ使用する場合は、使用する編集モデルのセクションをお読みください。

メモ:

バージョン対応ビューは、z オペレーティング システムの Db2 データベースではサポートされていません。

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

SQL を使用してデフォルト バージョンに接続し、バージョン対応ビューを編集することができます。編集セッションを開く必要はありません。編集を開始すると、デフォルト バージョンの現在のステートに自動的に接続されます。

編集後は、テーブルまたはフィーチャクラスの差分テーブルに他のユーザーがアクセスできるようにコミットする必要があります。

次の手順では、バージョン対応ビュー (blic_evw) を編集します。このビューへの編集内容は、バージョン対応登録された blic テーブルの差分テーブルに書き込まれます。編集は数か所しかないため、デフォルト バージョンに対して編集が行われます。

  1. SQL クライアントからデータベースに接続します。必ず、データセットとバージョン対応ビューを編集できる権限を持つユーザーとして接続してください。
  2. SQL を使用してバージョン対応ビューに最初の編集を実行します。

    この例では、既存の行が更新され、所有者名のプロパティが変更されています。

    UPDATE blic_evw 
    SET propowner = 'C. O. Industry' 
    WHERE lic = 44977;
    
  3. 編集をコミットします。
    COMMIT;
    
  4. 次の編集を行います。

    バージョン対応ビューを通して、新しいレコードがテーブルに追加されます。

    INSERT INTO blic_evw (propowner, date_entered, location) VALUES (  'Moe Esposito',   CURRENT TIMESTAMP, 
      db2gse.ST_PointFromText ('point (0.0125662 0.0046711)', 12));
    

    ヒント:

    INSERT ステートメントでは ObjectID 値を指定しません。バージョン対応ビューでは、使用可能な ObjectID が自動的に取得されて行に挿入されます。

  5. 編集をコミットします。
    COMMIT;
    

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

blic フィーチャクラスに更新内容が多数ある場合は、名前付きバージョンでの編集が適しています。

ジオデータベースの名前付きバージョンを編集するのに使用するストアド プロシージャと構文は次のとおりです。

ストアド プロシージャ目的構文と説明

sde.create_version

ジオデータベースの名前付きバージョンを作成します。

名前付きバージョン (デフォルト以外のバージョン) を編集している場合は、必ず独自の個別バージョンを編集します。複数の編集者がバージョン対応ビューを使用して同じ名前付きバージョンを編集することはできません。

CALL sde.create_version ('<parent_version>', '<child_version>', <name_rule>, <access>, '<description>', <message_code_output>, <message_output>)

sde.setcurrentversion

アクセスするジオデータベース バージョンとステートを設定します。

setcurrentversion を呼び出すことで、バージョンが参照しているステートにアクセスします。

CALL sde.setcurrentversion('<child_version>', <message_code_output>, <message_output>)

sde.edit_version

名前付きバージョンでの編集セッションを開始および終了します。

トランザクション内の編集データは、このプロシージャが呼び出されたときにコミットされます。

CALL sde.edit_version('<child_version>', <1 or 2>, <message_code_output>, <message_output>)

編集セッションを開始するときは 1 を指定し、 終了するときは 2 を指定します。

CALL ステートメントのパラメーターは次のとおりです。

  • <parent_version> はバージョンの作成元となるバージョンです。
  • <child_version>: 編集用に作成する名前付きバージョンです。
  • <name_rule> はバージョン用に指定された名前をそのまま使用するか(2)、それとも、重複する名前が指定されたときは一意の名前を作成するか(1)を示します。
  • <access>: バージョンの権限レベルです。0 はプライベート、1 はパブリック、2 はプロテクトを表します。
  • <description> はテキストによる子バージョンの説明です。
  • <message_code_output> は SQL コードを返すことを示します。
  • <message_output> は SQL メッセージを返すことを示します。

次の手順では、デフォルト バージョンから名前付きバージョン (myedits12111) が作成され、blic_evw バージョン対応ビューを通してこのバージョンに編集が加えられます。

  1. コマンド プロンプトから、編集を実行する新しいバージョンを作成します。
    CALL sde.create_version ('SDE.DEFAULT', 'myedits12111', 1, 1, 'versioned view edit version', ?, ?);
    
  2. 単一引用符で囲まれたテキストはそのまま解釈されます。したがって、引用符内に入力するテキストは、データベースに格納されているテキストと大文字または小文字が(すべて大文字、すべて小文字、または大文字と小文字が混在する場合で)一致している必要があります。

  3. 作成した子バージョンに対して編集セッション用のバージョンを設定します。
    CALL sde.setcurrentversion('myedits12111', ?, ?);
    

    ここでは、編集ステートを myedits12111 バージョンが参照しているステートに設定しています。

  4. 1 を指定して edit_version ストアド プロシージャを呼び出し、編集セッションを開始します。1 は編集セッションの開始を意味します。
    CALL sde.edit_version('myedits12111', 1, ?, ?);
    
  5. SQL クライアントから、新しいトランザクションを開始して blic_evw を編集します。
  6. SQL を使用して、バージョン対応ビューに一連の編集を実行します。
    INSERT INTO blic_evw (propowner, date_entered, location)
    VALUES (
      'V. Nay', 
      CURRENT TIMESTAMP, 
      db2gse.ST_PointFromText ('point (0.0125699 0.0046700)', 12));
    UPDATE blic_evw 
    SET (phone1,phone2) = ('555.111.2345','555.111.6789') 
    WHERE propowner = 'Tella Chomsky';
    UPDATE blic_evw
    SET exp_date = '2020-06-30 17:00:00'
    WHERE lid = 22903;
    UPDATE blic_evw
    SET location = db2gse.ST_PointFromText ('point (0.0125705 0.0046688)', 12))
    WHERE lid = 8992;
    INSERT INTO blic_evw 
    (codenum, propowner) 
    VALUES (456, 'Anjo Badsu');
    DELETE FROM blic_evw
    WHERE lid = 133;
    
  7. 編集をコミットします。
    COMMIT;
    
  8. SQL で編集をさらに実行します。次の一連の編集が終了したら、編集セッションを閉じます。
  9. 今回は 2 を指定して edit_version ストアド プロシージャを呼び出し、編集セッションを終了します。2 は編集セッションの終了を意味します。
    CALL sde.edit_version('myedits12111', 2, ?, ?);
    

    ヒント:

    1 回の編集セッションで編集できるバージョンは 1 つだけです。たとえば、2 つ目のバージョン (mynewedits など) を編集する場合、この手順で示したように、myedits12111 の編集セッションを閉じる必要があります。その後、setcurrentversion を呼び出して myneweditsmynewedits バージョンを指定し、edit_version を呼び出して編集セッションを開始します。

名前付きバージョンの編集からデフォルト バージョンの編集への切り替え

たとえば、サイトの他のユーザーが特定の編集データをすぐに参照する必要があるとマネージャーから通知された場合など、デフォルト バージョンに戻って直接編集する必要がある場合は、set_default を呼び出して、デフォルト バージョンの編集に戻ることができます。デフォルト バージョンに接続している他のユーザーは、クライアント接続を更新するとすぐに、デフォルト バージョンに加えられた編集を参照することができます。

ジオデータベースのデフォルト バージョンを編集するのに使用するストアド プロシージャと構文は次のとおりです。

ストアド プロシージャ目的構文と説明

sde.set_default

デフォルト バージョンの現在のステートの編集に戻ります。

名前付きバージョンまたはデフォルト バージョンの特定のステートを編集していて、デフォルト バージョンの現在のステートの編集に戻りたい場合は、このプロシージャを呼び出します。

CALL sde.set_default (<message_code_output>, <message_output>)

<message_code_output> は SQL コードを返すことを示します。<message_output> は SQL メッセージを返すことを示します。

  1. SQL プロンプトで、set_default プロシージャを呼び出します。
    CALL sde.set_default
    

    これで、セッションは、デフォルト バージョンが参照している現在のステートを編集するように設定されます。

  2. blic_evw バージョン対応ビューを編集します。
    INSERT INTO blic_evw (propowner, b_name, date_entered, location) VALUES (  'Ruben Gol',   CURRENT TIMESTAMP, 
      'Chez Coiffure',  db2gse.ST_PointFromText ('point (0.0125650 0.0046721)', 12));
    
  3. 編集をコミットします。
    COMMIT;
    

    デフォルト バージョンの同じステートやその系統のステートを指している他のクライアントは、接続を更新して、新しいポイント フィーチャを表示できます。

名前付きバージョンの編集のリコンサイルとポスト

名前付きバージョンでの編集が終了したら、ArcGIS を使用して、編集データのリコンサイル、競合の確認および解決、ポストを実行する必要があります。これは、ArcGIS Desktop で [バージョンのリコンサイル (Reconcile Versions)] ジオプロセシング ツールまたは Python スクリプトを使用して実行します。詳細については、以下のトピックをご参照ください。

  • バージョンのリコンサイルのクイック ツアー
  • バージョンのリコンサイル
  • 競合の確認のクイック ツアー
  • 変更のポスト
  • バージョンのリコンサイル (Reconcile Versions)
ヒント:

バージョン対応登録されたデータを編集しており、編集データをベース テーブルに移すオプションが選択されている場合は、リコンサイルしてデフォルト バージョンにポストした後で、編集データがベース テーブルに移されます。

編集データがデフォルト バージョンにポストされたら、名前付きバージョンを削除できます。リコンサイルしてジオデータベースのデフォルト バージョンにポストした後で名前付きバージョンを削除する場合に使用するストアド プロシージャとその構文を次に示します。

ストアド プロシージャ目的構文と説明

sde.delete_version

ジオデータベース バージョンを削除します。

CALL sde.delete_version('<child_version>', <message_code_output>, <message_output>)

次の例では、すべての編集データがリコンサイルされてデフォルト バージョンにポストされた後で、myedits12111 が削除されます。

CALL sde.delete_version ('myedits12111', ?,?);

関連トピック

  • SQL を使用してバージョン対応登録されたデータを編集する方法の概要
  • バージョン対応ビューとは
  • ArcGIS Desktop からジオデータベース データへの SQL アクセスの有効化
  • Version_View_Name
  • Is_Versioned

ArcGIS Desktop

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

ArcGIS

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

Esri について

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