複雑な SQL クエリによって定義されたクエリ レイヤーをフィーチャ サービスに公開しようとしました。
解決策
次のいずれかを実行します。
- 編集が不要な場合は、フィーチャ サービスではなくマップ サービスを公開します。
- 編集が必要であるため、フィーチャ サービスが必要な場合は、結合や WHERE 句などの複雑なエレメントを削除することで、クエリ レイヤーを定義する SQL クエリを単純化します。単純なクエリの例を次に示します。
SELECT id, statename, population, shape FROM mydb.myuser.US_States
- 公開されたフィーチャ サービスにクエリ レイヤーからのデータが必要でない場合は、公開する前にそのデータをマップから削除します。
追加情報
クエリ レイヤーは、SQL クエリによって定義されるレイヤーまたはスタンドアロン テーブルです。クエリ レイヤーによって、データベース管理システムに格納されている空間情報と非空間情報の両方を、ArcMap 内の GIS プロジェクトに統合できます。
ArcMap で作業を実行中に、SQL クエリを定義することでクエリ レイヤーを作成します。このクエリが、データベース内のテーブルとビューに対して実行され、結果セットが (クエリに空間フィールドが含まれるかどうかに応じて) レイヤーまたはスタンドアロン テーブルとして ArcMap に追加されます。
フィーチャ サービスを ArcGIS for Server に公開する場合は、クエリ レイヤーを定義する SQL クエリが単純である必要があります。単純なクエリはテーブルにフィールドのサブセットを含めることができますが (たとえば、SELECT objectid, shape FROM mydb.myuser.US_States)、フィーチャ サービスの公開では WHERE 句および結合がサポートされていません。たとえば、WHERE 句を使用して行のサブセットを選択するクエリ レイヤーを公開することはできません。