サマリー
入力 SQL の SELECT ステートメントに基づいて、DBMS からクエリ レイヤーを作成します。
使用法
クエリ レイヤーは、エンタープライズ データベースのみで動作します。ファイル ジオデータベースまたはパーソナル ジオデータベースは、このツールに対する有効な入力ワークスペースではありません。
入力した SQL クエリの結果として空間列が返された場合、出力はフィーチャ レイヤーとなります。SQL クエリが空間列を返さない場合、出力はスタンドアロン テーブルになります。
このツールで必要な接続ファイルは、[データベース接続の作成 (Create Database Connection)] ツールを使用して作成できます。
- SQL クエリの結果で行が返されない場合、出力クエリ レイヤーは空になり、クエリで返された列のスキーマのみが含まれます。この場合、返された列に空間列が含まれていると、ツールは次のデフォルト設定を使用してクエリ レイヤーを作成します。
- ジオメトリ タイプ - POINT
- SRID - 1
- 空間参照 - NAD1983
ユーザーはツールを実行する前に、これらの値を変更することができます。
地理データの場合、SQL ステートメントから返された結果の各レコードには、SRID (空間参照 ID) が関連付けられています。SRID 値は、データの空間参照を決定するためにデータベースによって使用されます。SRID に関する特定の機能は、DBMS プラットフォーム間で異なります。同じテーブル内で複数の SRID 値をサポートする DBMS プラットフォームもありますが、ArcGIS は 1 つの値しかサポートしません。このツールでは SRID 値を選択可能で、デフォルトでは結果セットの最初のレコードの SRID が使用されます。
構文
MakeQueryLayer_management (input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference})
パラメーター | 説明 | データ タイプ |
input_database | クエリ対象のデータを含むデータベース接続ファイル。 | Workspace |
out_layer_name | 作成されるフィーチャ レイヤーまたはテーブル ビューの出力名。 | String |
query | データベースに発行される SELECT クエリを定義する SQL ステートメント。 | String |
oid_fields [oid_fields,...] (オプション) | 動的で一意な行 ID を生成するために使用できる、SELECT ステートメントの SELECT リストの 1 つ以上のフィールド。 | String |
shape_type (オプション) | クエリ レイヤーのシェープ タイプ。クエリの結果セットに含まれるレコードのうち、指定したシェープ タイプに一致するレコードだけが出力クエリ レイヤーで使用されます。ツールの整合チェックにより、結果セットの最初のレコードに基づいてこのプロパティが設定されます。目的の出力シェープ タイプに設定されていない場合は、ツールを実行する前に変更できます。クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。
| String |
srid (オプション) | ジオメトリを返すクエリの SRID (空間参照 ID) を設定します。クエリの結果セットに含まれるレコードのうち、指定した SRID 値に一致するレコードだけが出力クエリ レイヤーで使用されます。ツールの整合チェックにより、結果セットの最初のレコードに基づいてこのプロパティが設定されます。目的の出力 SRID 値に設定されていない場合は、ツールを実行する前に変更できます。クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。 | String |
spatial_reference (オプション) | 出力クエリ レイヤーで使用する座標系を設定します。ツールの整合チェックにより、結果セットの最初のレコードに基づいてこのプロパティが設定されます。目的の出力座標系に設定されていない場合は、ツールを実行する前に変更できます。クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。 | Spatial Reference |
コードのサンプル
MakeQueryLayer (クエリ レイヤーの作成) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで MakeQueryLayer ツールを使用する方法を示しています。
import arcpy
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")
arcpy.MakeQueryLayer_management("Connections/moab.sde",
"Slickrock",
"select * from moabtrails where name = 'slickrock'",
"OBJECTID",
"POLYLINE",
"32611",
sr)
MakeQueryLayer (クエリ レイヤーの作成) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン スクリプトで、この MakeQueryLayer ツールの使用方法を示します。
# Name: MakeQueryLayer.py
# Description: Creates an output query layer based on a where clause.
# This example shows how to create a spatial reference object using the
# name of a coordinate system. It also demonstrates how to use two fields
# to generate a dynamic unique row identifier for the query layer.
# Import system modules
import arcpy
# Create the spatial reference for the output layer.
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")
# Run the tool
arcpy.MakeQueryLayer_management("Connections/moab.sde",
"Single Track",
"select * from moabtrails where type = 'single'",
"UID;name",
"POLYLINE",
"32611",
sr)
環境
ライセンス情報
- ArcGIS Desktop Basic: はい
- ArcGIS Desktop Standard: はい
- ArcGIS Desktop Advanced: はい