ST_Geometry を使用する SQL 関数の概要
SQL(Structured Query Language)は、データベース管理システム(DBMS)に格納されたデータを選択し操作するときに使用される標準化された言語です。Oracle または PostgreSQL にジオデータベースを作成するか、ST_Geometry タイプをインストールした場合、特定の SQL 関数とタイプが sde ユーザのスキーマに作成されます。SQL およびこれらの関数とタイプを使用して、データを検索および編集できます。
このセクションの関数のトピックは、以下の項目で構成されています。
-
定義
関数の説明
-
構文
関数で使用する正しい構文
関係演算子の場合は、パラメータを指定する順序が重要になります。最初のパラメータでは選択対象のテーブルを指定し、2 つめのパラメータではフィルタとして使用するテーブルを指定します。
-
戻り値のタイプ
関数を実行したときに返されるデータのタイプ
-
例
特定の関数を使用するシナリオのサンプル
このセクションのサンプルは、作成したテーブルに空間インデックスを構築しません。空間インデックスを作成する場合は、「ST_Geometry 列を持つテーブルでの空間インデックスの作成」をご参照ください。
SQL 関数の一覧
以下のリンクをクリックすると、Oracle と PostgreSQL の ST_Geometry を操作する関数の説明にジャンプします。
ST_Geometry 関数を Oracle で使用する場合、関数と演算子を sde. で修飾する必要があります。たとえば、ST_Buffer は sde.ST_Buffer と指定します。sde. を追加すると、その関数が sde ユーザのスキーマに格納されていることが明示されます。PostgreSQL の場合、この修飾は任意ですが、修飾子を付加することをお勧めします。
ST_Geometry 以外の、たとえば PostGIS ジオメトリ タイプや Oracle SDO_Geometry タイプのような空間タイプに使用される関数については、それぞれ PostGIS または Oracle Spatial のマニュアルをご参照ください。PostGIS のマニュアルは www.postgis.org にあります。Oracle のドキュメントは、Oracle Web サイトにあります。
ST_Geometry SQL 関数は、用途に基づいてグループ分けできます。
コンストラクタ関数
コンストラクタ関数は、いずれかのジオメトリ タイプまたはジオメトリのテキスト記述を受け取り、ジオメトリを作成します。
ST_Curve(Oracle のみ) |
ST_GeomCollFromShape(PostgreSQL のみ) |
ST_GeomCollFromWKB(PostgreSQL のみ) |
ST_GeomFromShape(PostgreSQL のみ) |
ST_GeomFromText(Oracle のみ) |
ST_LineFromShape(PostgreSQL のみ) |
ST_LineFromText(Oracle のみ) |
ST_MLineFromShape(PostgreSQL のみ) |
ST_MLineFromText(Oracle のみ) |
ST_MPointFromShape(PostgreSQL のみ) |
ST_MPointFromText(Oracle のみ) |
ST_MPolyFromText(Oracle のみ) |
ST_MultiCurve(Oracle のみ) |
ST_MultiSurface(Oracle のみ) |
ST_PointFromShape(PostgreSQL のみ) |
ST_PointFromText(Oracle のみ) |
ST_PolyFromShape(PostgreSQL のみ) |
ST_PolyFromText(Oracle のみ) |
ST_Surface(Oracle のみ) |
アクセサ関数
ジオメトリを入力として、それに関する特定の情報を返す関数がいくつかあります。
一部の関数は、1 つまたは複数のフィーチャが特定の条件を満たすかどうかをチェックします。ジオメトリが条件を満たす場合、関数は 1 または t(TRUE)を返します。ジオメトリが条件を満たさない場合、関数は 0 または f(FALSE)を返します。
ST_Entity(Oracle のみ) |
ST_GeoSize(PostgreSQL のみ) |
ST_Is3d(Oracle のみ) |
ST_IsMeasured(Oracle のみ) |
関係関数
関係関数は、ジオメトリを入力として受け取り、ジオメトリ間に特定のリレーションシップが存在するかどうかを判定します。空間リレーションシップの条件が満たされている場合、関数は 1 または t(TRUE)を返します。空間リレーションシップの条件が満たされていない(リレーションシップが存在しない)場合、関数は 0 または f(FALSE)を返します。
ジオメトリ関数
空間データを入力として、それを分析して、新しい空間データを返します。
ST_Aggr_ConvexHull(Oracle のみ) |
ST_Aggr_Intersection(Oracle のみ) |
ST_Aggr_Union(Oracle のみ) |
ST_Equalsrs(PostgreSQL のみ) |