クエリ レイヤの作成
クエリ レイヤの作成には、ArcMap の [クエリ] ダイアログ ボックスを使用します。クエリ レイヤを作成する前に、データベースへの接続を確立しておく必要があります。
データベースへの接続が確立されると、そのデータベースにあるテーブルとビューのリストがダイアログ ボックスの左側のウィンドウに表示されます。テーブルを 1 つ選択すると、そのテーブルの各列が右側のウィンドウに表示されます。
データベースの各列にはそれぞれデータ タイプが設定されています。ArcGIS では、ほとんどの一般的なデータベース タイプを使用できます。ただし、一部のデータベース タイプはサポートされていません。属性列のタイプに「不明」と表示されている場合は、ArcGIS がサポートしていないデータ タイプであることを示します。クエリを指定するときには、データ タイプが不明となっているすべての列を除外するか、ArcGIS がサポートする別のデータ タイプに変更する必要があります。
ArcGIS がサポートするデータ タイプの詳細については、次のヘルプ トピックをご参照ください。
ArcGIS、ArcSDE、および DB2 のデータ タイプの比較
ArcGIS、ArcSDE、および Informix のデータ タイプの比較
ArcGIS、ArcSDE、および Oracle のデータ タイプの比較
- 作成するクエリ レイヤの名前を [名前] テキスト ボックスに入力します。この名前が ArcMap のコンテンツ ウィンドウに表示されます。
- [クエリ] テキスト ボックスに SQL クエリを入力します。
-
クエリを作成したら、その整合性をチェックする必要があります。[整合チェック] をクリックすると、クエリの構文が正しく、ArcGIS で利用できるデータを返すものであるか確認できます。整合チェック プロセスでは、データベースに対してクエリを実行し、クエリから返される結果セットが ArcGIS のデータ モデリング標準に従っているかどうかが確認されます。クエリ レイヤは、整合性が確認されるまで ArcMap に追加されません。
整合チェック ルールとして、次を満たしていることが確認されます。
- 結果セットの持つ空間フィールドは 1 つだけである。
- 結果セットが持つ空間参照は 1 つだけである。
- 結果セットが持つエンティティ タイプは 1 つだけである。
- 結果セットに、ArcGIS のサポートしないフィールド タイプは含まれていない。
なんらかの理由で整合チェックに失敗した場合は、エラー メッセージが返されるので、クエリを修正する必要があります。
整合チェックは、対象のデータが ArcGIS と同じ標準を使用しない空間データベース内のデータである場合に特に重要になります。
ヒント:整合チェック プロセス中は、クエリ レイヤについて、ArcGIS によってエンティティ、空間参照、および一意の識別子のプロパティが設定されます。これらの値は、クエリで返される先頭行に基づいています。これらの設定を変更する必要がある場合は、[高度な設定] ダイアログ ボックスを使用します。[新規クエリ レイヤ] ダイアログ ボックスに高度な設定ページを表示するには、[高度な設定を表示] のチェックボックスをオンにします。高度な設定ページの詳細については、「一意な識別子のフィールドの選択」と「クエリ レイヤの空間参照の定義」のトピックをご参照ください。
- クエリの整合チェックに成功したら、[完了] をクリックして、結果をクエリ レイヤとして ArcMap に追加します。
クエリの構築にあたって [クエリ] テキスト ボックスにテーブル全体を追加する場合は、テーブルをダブルクリックするか、コンテンツ ウィンドウのテーブルを [クエリ] テキスト ボックス内にドラッグします。同様に、テーブル内の特定の列をクエリに追加する場合は、該当する列をダブルクリックするか、[列] ウィンドウから列を [クエリ] テキスト ボックス内にドラッグします。また、特定のクエリを入力することも、外部アプリケーションのクエリをコピーして [クエリ] テキスト ボックスに貼り付けることもできます。
クエリ レイヤを構築するときは、そのデータベースに固有の SQL 構文を使用する必要があります。一般的な SQL文 の例として、SELECT * FROM Test.dbo.US_States という構文を考えてみましょう。この場合は、US_States テーブルの全ての列が含まれたクエリ レイヤが作成されます。ArcMap では、アメリカ合衆国全体が表示されます。SQL クエリの構築の詳細については、「SQL 式の構築について」をご参照ください。