ジオデータベースで使用する空間テーブルの作成時のルール
ArcGIS でサードパーティ製ツールを使用して空間テーブルを作成するときに注意すべき点を以下に挙げます。
-
テーブルには ArcGIS で一意識別子として使用する null でない一意の整数列が必要です。
ArcSDE で空間検索、ログ ファイル検索、単一行の処理、マルチバージョン対応のデータベース処理を実行するには、空間テーブルに登録された一意のフィーチャ ID 列が含まれている必要があります。ArcSDE ジオデータベースの既存のテーブルに空間列を追加すると、一意の識別列も追加されることがあります。この列の名前は通常 OBJECTID ですが、別の名前を使用することもできます。
インデックスが付いていて、かつ、NUMBER または INTEGER で、一意で、非 NULL と宣言されていれば、既存の列を一意の識別列として使用することもできます。この列の詳細については、「オブジェクト ID とは」をご参照ください。
-
同じテーブルに空間列を複数持つことは避けてください。
同じテーブルに空間列を複数作成することは可能ですが、ArcGIS は同じテーブル内の複数のジオメトリ列をサポートしていません。空間列を複数持つテーブルを使用するには、それらの空間列のうちの 1 つだけを含む空間ビューを作成します。ST_Geometry 列を持つテーブルの空間ビューの作成方法については、「ST_Geometry 列を持つテーブルでの空間ビューの使用」をご参照ください。
-
大文字と小文字が混在したオブジェクト名は使用しないでください。
デフォルトではデータベースのオブジェクト名は、Oracle と DB2 ではすべて大文字、PostgreSQL と Informix ではすべて小文字で格納されます。 SQL を使用してテーブルを作成するときに大文字と小文字が混在した名前を強制的にデータベースに格納することは可能です。ただし、ArcGIS でデータを使用する予定がある場合はこれを行わないでください。ArcGIS はそれに対応しません。大文字と小文字が混在したオブジェクト名を作成した場合、ArcSDE コマンドや ArcMap のようなアプリケーションを使用してクエリを実行すると、処理に失敗します。同様に、PostgreSQL データベースですべて大文字のオブジェクト名を作成したり、Oracle データベースですべて小文字のオブジェクト名を作成した場合も、ArcGIS のクエリは失敗します。
ArcGIS で使用される SQL Server データベースでは大文字と小文字が区別されません。そのため、この規則は SQL Server データベースでは当てはまりません。
-
空間テーブルに挿入するレコードのタイプは、空間列用に定義されたタイプと一致している必要があります。
空間列に設定できるデータは空間列で要求されるタイプのデータに限られます。たとえば、ST_Polygon タイプの列の場合、整数、文字はもちろん、ST_LineString など他のジオメトリ タイプのデータも格納できません。ただし、ST_Geometry はサポートしている任意のサブタイプのジオメトリを受け入れます。
SQL Server の空間タイプ列は常に Geometry または Geography です。このエンティティ タイプについてはサブタイプもメタデータも存在しません。そのため、この規則は SQL Server データベースでは当てはまりません。
-
テーブルのデータに使用する空間参照は 1 つだけにしてください。
ジオデータベースでは、1 つの空間参照がテーブル全体に適用されます。テーブルを ArcSDE に登録するとき、使用する空間参照を指定しますが、指定できるのは 1 つだけです。一部のデータが、テーブルに登録した空間参照と、別の空間参照を使用している場合、データは適切にレンダリングされません。 エラー メッセージが表示されることもあります。