SQL による ST_Geometry タイプと ST_Raster タイプ使用の概要
You can use the database management system's (DBMS) Structured Query Language (SQL), data types, and table formats to work with the information stored in a geodatabase. SQL is a database language that supports data definition and data manipulation commands.
Accessing the information in a geodatabase via SQL allows external applications to work with the tabular data managed by the geodatabase. These external applications can be nonspatial database applications or custom spatial applications developed in an environment other than ArcObjects.
You can issue SELECT statements against any of the supported DBMS types for geodatabases, as well as against file-based data sources. The topics About building a SQL expression and SQL reference provide you with information about building SELECT statements for different data sources.
Be aware that using SQL to access the geodatabase bypasses geodatabase functionality, such as versioning, topology, networks, terrains, feature-linked annotation, or other class or workspace extensions. It may be possible to use DBMS features such as triggers and stored procedures to maintain the relationships between tables needed for certain geodatabase functionality. However, executing SQL commands against the database without taking this extra functionality into account—for example, issuing INSERT statements to add records to a business table or adding a column to an existing feature class—will circumvent geodatabase functionality and possibly corrupt the relationships between data in your geodatabase.
In general, the following guidelines apply when using SQL to modify information in the geodatabase:
- マルチバージョン対応ビューと組み合わせて SQL を使用しない限り、データをバージョン対応にした後は、SQL を使用してレコードを更新しないでください。
- SQL を使用してバージョン非対応データを更新するときは、リレーションシップ クラスやフィーチャリンク アノテーション、トポロジなど、ジオデータベースの振舞いを通じてデータベース内の他のオブジェクトに影響を与える属性は変更しないでください。
- SQL ステートメントの実行後は、COMMIT または ROLLBACK ステートメントを発行して、変更内容を確実にデータベースにコミットするか取り消してください。
The preceding guidelines apply to any attribute, spatial or nonspatial. This book of the help focuses on using SQL for spatial selections, altering data, and altering the properties of data stored in the ST_Geometry and ST_Raster data storage types.
ST_Geometry 格納タイプ
The ST_Geometry SQL data type is used in geodatabases stored in DB2, Informix, Oracle, and PostgreSQL. This data type can be used within the geodatabase plus it provides SQL access to simple feature class geometry for third-party applications.
ST_Geometry implements the OGC and ISO SQL Multimedia Specification for Spatial. The OGC reference is OpenGIS Implementation Specification for Geographic information —Simple feature access—Part 2: SQL option, version 1.1.0. The ISO reference is ISO/IEC 13249-3 SQL multimedia and application packages—Part 3: Spatial.
For information on using SQL with the ST_Geomery type in DB2 or Informix, consult the IBM DB2 and Informix documentation. For information on using SQL with the ST_Geometry type in Oracle and PostgreSQL, see the subsequent section.
The "Using spatial types with SQL" section of this help does contain some examples for DB2 and Informix; however, for complete information on using ST_Geometry with these databases, read the IBM documentation.
Oracle および PostgreSQL における ST_Geometry と SQL 関数の使用
SQL を使用してデータにアクセスし分析や操作を行うには、ArcSDE とともにインストールされた関数を利用する必要があります。
これらの関数は用途に基づいてグループ分けできます。
-
空間リレーションシップをテストする関数
ジオメトリを入力として、ジオメトリ間に特定のリレーションシップが存在するかどうかを判定します。空間リレーションシップの条件が満たされている場合、関数は 1 または t(TRUE)を返します。空間リレーションシップの条件が満たされていない(リレーションシップが存在しない)場合、関数は 0 または f(FALSE)を返します。各関数の詳細については、「空間リレーションシップ」をご参照ください。
-
空間処理を実行する関数
空間データを入力として、それを分析して、新しい空間データを返します。関数の説明については、「空間処理」をご参照ください。
-
ジオメトリのプロパティを返す関数
ジオメトリを入力として、それに関する特定の情報を返す関数がいくつかあります。これについては、「ジオメトリのプロパティ」で説明されています。一部の関数は、実際にはフィーチャが特定の条件を満たすかどうかをチェックします。ジオメトリが条件を満たす場合、関数は 1 または t(TRUE)を返します。ジオメトリが条件を満たさない場合、関数は 0 または f(FALSE)を返します。このような関数としては、ST_EqualSRS(PostgreSQL のみ)、ST_Is3d(Oracle のみ)、ST_IsClosed、ST_IsEmpty、ST_IsMeasured(Oracle のみ)、ST_IsRing、ST_IsSimple、および ST_OrderingEquals があります。
-
空間データの作成または空間の変換を実行する関数
あるタイプのジオメトリを入力として、異なるタイプのジオメトリを返します。または、ジオメトリの記述を入力として、作成したジオメトリを返します。その一例が ST_Transform です。この関数は実際には、ジオメトリの空間参照を、測地基準系のある空間参照から同じ測地基準系の別の空間参照に変更します。別のタイプのジオメトリまたはテキスト記述からジオメトリを作成する関数を、以下の表に挙げます。
ST_LineFromShape(PostgreSQL のみ)
ST_MPolyFromShape(PostgreSQL のみ)
ST_PointFromText(Oracle のみ)
ST_LineFromText(Oracle のみ)
ST_MPolyFromText(Oracle のみ)
ST_Curve(Oracle のみ)
ST_PolyFromShape(PostgreSQL のみ)
ST_MultiCurve(Oracle のみ)
ST_PolyFromText(Oracle のみ)
ST_GeomCollFromShape(PostgreSQL のみ)
ST_MLineFromShape(PostgreSQL のみ)
ST_GeomCollFromWKB(PostgreSQL のみ)
ST_MLineFromText(Oracle のみ)
ST_Surface(Oracle のみ)
ST_GeomFromShape(PostgreSQL のみ)
ST_MPointFromShape(PostgreSQL のみ)
ST_MultiSurface(Oracle のみ)
ST_GeomFromText(Oracle のみ)
ST_MPointFromText(Oracle のみ)
ST_PointFromShape(PostgreSQL のみ)
ST_Raster 格納タイプ
ArcSDE ジオデータベースでは、ST_Raster データ タイプを使用できます。このデータ タイプはジオデータベース内部で使用でき、このデータ タイプを使用することで、サードパーティ製アプリケーションからラスタ データに SQL でアクセスできるようになります。
ST_Raster タイプは、Oracle、PostgreSQL、および Microsoft SQL Server の ArcSDE ジオデータベースで使用できます。
SQL を使用して ST_Raster タイプにアクセスする ST_Raster 関数には、2 つの種類があります。
- ST_Raster と ST_PixelData のメソッド
- ST_RasterUtil のストアド プロシージャ
ST_Raster と ST_PixelData の関数
これは ST_Raster オブジェクトを初期化し操作するメソッドです。
ST_RasterUtil のストアド プロシージャ ユーティリティ
ST_RasterUtil のストアド プロシージャは ST_Raster タイプの作成と保守をサポートします。使用可能な関数は次のとおりです。
ST_RasterUtil.checkLibraryVersion