クエリ レイヤーの作成 (Make Query Layer) (データ管理)

概要

入力 SQL の SELECT ステートメントに基づいて、DBMS からクエリ レイヤーを作成します。

使用法

  • クエリ レイヤーは、エンタープライズ データベースのみで動作します。ファイル ジオデータベースは、このツールに有効な入力ワークスペースではありません。

  • ツールで作成されたレイヤーは一時的なものであり、プロジェクトを保存するか、[行のコピー (Copy Rows)] または [フィーチャのコピー (Copy Features)] でコピーを作成してデータを保持しておかない限り、セッション終了後に削除されます。

  • 入力した SQL クエリの結果として空間列が返された場合、出力はフィーチャ レイヤーとなります。SQL クエリが空間列を返さない場合、出力はスタンドアロン テーブルになります。

  • このツールで必要な接続ファイルは、[データベース接続の作成 (Create Database Connection)] ツールを使用して作成できます。

  • SQL クエリの結果で行が返されない場合、出力クエリ レイヤーは空になり、クエリで返された列のスキーマのみが含まれます。この場合、返された列に空間列が含まれていると、ツールは次のデフォルト設定を使用してクエリ レイヤーを作成します。

    • ジオメトリ タイプ - POINT
    • SRID - 1
    • 空間参照 - NAD1983

    次に、ツールを実行する前に、これらの値のいずれかを変更すべきかどうかを決定する必要があります。

  • 地理データの場合、SQL ステートメントから返された結果の各レコードには、空間参照 ID (SRID) が関連付けられています。SRID 値は、データの空間参照を決定するためにデータベースによって使用されます。SRID に関する特定の機能は、DBMS プラットフォーム間で異なります。同じテーブル内で複数の SRID 値をサポートする DBMS プラットフォームもありますが、ArcGIS は 1 つの値しかサポートしません。このツールでは SRID 値を選択することができ、デフォルトでは結果セットの最初のレコードの SRID が使用されます。

構文

MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
パラメーター説明データ タイプ
input_database

クエリ対象のデータを含むデータベース コネクション ファイル。

Workspace
out_layer_name

作成されるフィーチャ レイヤーまたはテーブル ビューの出力名。

String
query

データベースに発行される SELECT クエリを定義する SQL ステートメント。

String
oid_fields
[oid_fields,...]
(オプション)

動的で一意な行 ID を生成する、SELECT ステートメントの SELECT リストの 1 つ以上のフィールド。

String
shape_type
(オプション)

クエリ レイヤーのシェープ タイプを指定します。クエリの結果セットに含まれるレコードのうち、指定したシェープ タイプに一致するレコードだけが出力クエリ レイヤーで使用されます。ツールの整合チェックにより、結果セットの最初のレコードに基づいてこのプロパティが設定されます。目的の出力シェープ タイプに設定されていない場合は、ツールを実行する前に変更できます。クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

  • POINT出力クエリ レイヤーはポイント ジオメトリを使用します。
  • MULTIPOINT出力クエリ レイヤーはマルチポイント ジオメトリを使用します。
  • POLYGON出力クエリ レイヤーはポリゴン ジオメトリを使用します。
  • POLYLINE出力クエリ レイヤーはポリライン ジオメトリを使用します。
String
srid
(オプション)

ジオメトリを返すクエリの空間参照 ID (SRID)。クエリの結果セットに含まれるレコードのうち、指定した SRID 値に一致するレコードだけが出力クエリ レイヤーで使用されます。ツールの整合チェックにより、結果セットの最初のレコードに基づいてこのプロパティが設定されます。目的の出力 SRID 値に設定されていない場合は、ツールを実行する前に変更できます。クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

String
spatial_reference
(オプション)

出力クエリ レイヤーで使用する座標系。ツールの整合チェックにより、結果セットの最初のレコードに基づいてこのプロパティが設定されます。目的の出力座標系に設定されていない場合は、ツールを実行する前に変更できます。クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

Spatial Reference
spatial_properties
(オプション)

レイヤーの空間プロパティの定義方法を指定します。

整合チェック処理時に、クエリ レイヤーに対して次元、ジオメトリ タイプ、空間参照、SRID、および一意識別子の各プロパティが設定されます。これらの値は、クエリで返される先頭行に基づいています。テーブルに対するツールのクエリからこれらのプロパティを取得するのではなく、プロパティを手動で定義するには、このパラメーターのデフォルト値を使用します。

  • DEFINE_SPATIAL_PROPERTIESレイヤーの空間プロパティを手動で定義します。これがデフォルトです。
  • DO_NOT_DEFINE_SPATIAL_PROPERTIESクエリで返される先頭行に基づいてレイヤー プロパティが決定されます。
Boolean
m_values
(オプション)

レイヤーに M 値が含まれるかどうかを指定します。

  • INCLUDE_M_VALUESレイヤーに M 値が含まれます。
  • DO_NOT_INCLUDE_M_VALUESレイヤーに M 値は含まれません。これがデフォルトです。
Boolean
z_values
(オプション)

レイヤーに Z 値が含まれるかどうかを指定します。

  • INCLUDE_Z_VALUESレイヤーに Z 値が含まれます。
  • DO_NOT_INCLUDE_Z_VALUESレイヤーに Z 値は含まれません。これがデフォルトです。
Boolean
extent
(オプション)

レイヤーの範囲。このパラメーターは、[レイヤーの空間プロパティの定義] (Python の spatial_properties = DEFINE_SPATIAL_PROPERTIES) がオンの場合のみ使用されます。この範囲にはテーブル内のすべてのフィーチャを含める必要があります。

Extent

派生した出力

名前説明データ タイプ
out_layer

出力クエリ レイヤー。

テーブル ビュー

コードのサンプル

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)

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック