ジオデータベース データへの SQL によるアクセス
データベース管理システム(DBMS)のネイティブ SQL の SELECT ステートメントを使用して、ArcSDE ジオデータベース内のデータセットからデータを読み取ることができます。
データを選択する 1 つまたは複数のテーブルを SQL ステートメントに指定します。たとえば、次の簡単なクエリでは、flyway フィーチャクラスの name 列と sp_id 列から情報が返されます。
SELECT name, sp_id FROM yousir.flyway;
フィーチャクラスに対するクエリでは、ベース(またはビジネス)テーブル内のデータに対するクエリが実行されます。クエリの対象となるフィーチャクラスが次の条件を満たしていれば、ベース テーブルに対するクエリで十分にデータを表示できます。
- データがジオデータベースの機能(履歴管理、アノテーション、レプリケーション、ネットワーク、パーセル ファブリック、リレーションシップ クラス、カートグラフィック リプレゼンテーション、スケマティック データセット、サブタイプ、ドメイン、テレイン、トポロジなど)に参加していないこと
- フィーチャクラスがバージョン対応登録されていないこと
- フィーチャクラスの、ジオメトリ格納に SQL 空間タイプが使用されていること
- ArcSDE XML 列ではなくネイティブ DBMS XML 列が使用されていること
アクセスしたいデータがジオデータベースの機能に参加している場合や、バイナリ ジオメトリ格納または ArcSDE XML が使用されている場合は、必要な関連テーブルを含むようクエリを構築し、正しい列を使ってそれらのテーブルを結合して関連テーブル内の情報を表示する必要があります。
フィーチャクラスがバージョン対応登録されている場合は、そのフィーチャクラスのマルチバージョン対応ビューを作成してフィーチャクラスにクエリを実行できます。 データセットがバージョン対応登録されている場合、テーブルに対して行った編集内容が関連する ADD テーブルおよび DELETE テーブル(差分テーブル)に格納されます。 マルチバージョン対応ビューは、バージョン対応データセットのベース テーブルに対してクエリを実行するためのメカニズムであり、ADD テーブルおよび DELETE テーブル内の関連付けられた値の表示を可能にします。 マルチバージョン対応ビューに対する SQL クエリで、ArcSDE とともにデータベースにインストールされている関数および手順を使用すると、複雑な結合ステートメントを記述する必要なく、ベース テーブル、ADD テーブル、および DELETE テーブル内のデータを表示することができます。