クエリ レイヤーとは、ArcMap のマップに格納される SQL クエリです。 クエリ レイヤーを使用することで、データベース内の空間テーブルと非空間テーブル、およびビューにアクセスすることができます。 クエリ レイヤーは SQL を使用してデータベースに直接アクセスするため、データはエンタープライズ ジオデータベースの一部である必要はありません。ただし、必要であれば、エンタープライズ ジオデータベースのテーブルやフィーチャクラスに対してクエリ レイヤーを定義することはできます。 たとえば、データベースにビューを作成するための権限はないが、フィーチャクラスのどのデータをマップに表示するか制限したいとします。 その場合、フィーチャクラスから特定のフィールドまたは値だけを選択するクエリ レイヤーをマップに作成します。
クエリ レイヤーを作成するには、SQL クエリを定義します。 クエリは、指定したデータベースのテーブルとビューに対して実行されます。クエリに空間列が含まれる場合、結果セットはレイヤーとしてマップに追加され、空間列が含まれない場合はスタンドアロン テーブルとして追加されます。
クエリ レイヤーを定義する SQL クエリは静的な SQL ステートメントで、マップでレイヤーが表示されたり使用されたりするたびにデータベース内で実行されます。 このため、データのコピーやスナップショットを作成することなく最新の情報を表示できます。 これは、頻繁に変更される動的な情報を操作する場合に特に便利です。
クエリ レイヤーを操作する場合には、以下の点に注意してください。
- クエリ レイヤーは、特定のデータベース管理システムでサポートされています。
- マップでクエリ レイヤーを使用するには、データベースからマップにテーブルをドラッグするか、[新規クエリ レイヤー] ダイアログ ボックスを使用してデータベースまたはエンタープライズ ジオデータベース内のテーブルおよびビューに対してクエリを定義します。
- プロジェクトのテーブルをマップに追加またはドラッグすると、ArcMap は、テーブルのすべてのフィールドと行を選択するクエリ レイヤーを自動的に作成します。 レイヤーのプロパティでクエリ レイヤーの定義に変更を加えることで、マップで使用可能なものを変更することができます。
- または、データをマップに追加する前にクエリ レイヤーを定義する方法もあります。 エンタープライズ ジオデータベースのデータのクエリ レイヤーを定義するには、この方法を使用する必要があります。
- クエリ レイヤーはマップの他のフィーチャ レイヤーやスタンドアロン テーブルと同じような振舞いなので、クエリ レイヤーを使ってデータを表示したり、ジオプロセシング ツールへの入力として使用したり、開発者 API を使用するプログラミングによってアクセスすることができます。
- データベース接続から直接アクセスする場合、クエリ レイヤーは読み取り専用になります。
- クエリ レイヤーとしてアクセスされるデータベースを編集するには、Web フィーチャ レイヤーとして共有してポータルからアクセスします。 仮想列 (句、または結合) をクエリ レイヤーに含めることはできません。
- クエリ レイヤーを作成したら、レイヤー ファイル (*.lyr) として保存したり、レイヤー パッケージ (*.lpk) の作成に使用したりできます。 これによって、他のアプリケーション、マップ ドキュメント、他のユーザーと、クエリ レイヤーを容易に共有できるようになります。
- クエリ レイヤーのデータを、別のデータベースまたはエンタープライズ ジオデータベースにエクスポートできます。