クエリ レイヤの作成(Make Query Layer) (データ管理)
サマリ
入力 SQL の SELECT ステートメントに基づいて、DBMS からクエリ レイヤを作成します。
使用法
-
クエリ レイヤは、エンタープライズ データベースのみで動作します。ファイル ジオデータベースまたはパーソナル ジオデータベースは、このツールに対する有効な入力ワークスペースではありません。
入力した SQL クエリの結果として空間列が返された場合、出力はフィーチャ レイヤとなります。SQL クエリが空間列を返さない場合、出力はスタンドアロン テーブルになります。
このツールで必要な接続ファイルは、[データベース接続の作成(Create Database Connection)] ツールを使用して作成できます。
- SQL クエリの結果で行が返されない場合、出力クエリ レイヤは空になり、クエリで返された列のスキーマのみが含まれます。この場合、返された列に空間列が含まれていると、ツールは次のデフォルト設定を使用してクエリ レイヤを作成します。
- ジオメトリ タイプ:ポイント
- SRID:1
- 空間参照:NAD1983
ユーザはツールを実行する前に、これらの値を変更することができます。
地理データの場合、SQL ステートメントから返された結果の各レコードには、SRID(空間参照 ID)が関連付けられています。SRID 値は、データの空間参照を決定するためにデータベースによって使用されます。SRID に関する特定の機能は、DBMS プラットフォーム間で異なります。同じテーブル内で複数の SRID 値をサポートする DBMS プラットフォームもありますが、ArcGIS は 1 つの値しかサポートしません。このツールでは SRID 値を選択可能で、デフォルトでは結果セットの最初のレコードの SRID が使用されます。
構文
パラメータ | 説明 | データ タイプ |
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 |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで MakeQueryLayer(クエリ レイヤの作成)ツールを使用する方法を示しています。
import arcpy
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")
arcpy.MakeQueryLayer_management("Database Connections/moab.sde",
"Slickrock",
"select * from moabtrails where name = 'slickrock'",
"OBJECTID",
"POLYLINE",
"32611",
sr)
次のスタンドアロン スクリプトは、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("Database Connections/moab.sde",
"Single Track",
"select * from moabtrails where type = 'single'",
"UID;name",
"POLYLINE",
"32611",
sr)