3.2 SDO_TOPO.CREATE_TOPOLOGY

構文

SDO_TOPO.CREATE_TOPOLOGY(     
  topology                 IN VARCHAR2,      
  tolerance                IN NUMBER,      
  srid                     IN NUMBER DEFAULT NULL,      
  node_table_storage       IN VARCHAR2 DEFAULT NULL,      
  edge_table_storage       IN VARCHAR2 DEFAULT NULL,      
  face_table_storage       IN VARCHAR2 DEFAULT NULL,      
  history_table_storage    IN VARCHAR2 DEFAULT NULL.      
  digits_right_of_decimal  IN VARCHAR2 DEFAULT 16);

説明

トポロジを作成します。

パラメータ

topology

作成するトポロジの名前を指定します。名前は20文字以下である必要があります。

tolerance

トポロジ内のトポロジ・ジオメトリに関連付けられた許容差を指定します。(許容差については、「トポロジ・データ・モデルの許容差」を参照してください。)

srid

トポロジ内のすべてのトポロジ・ジオメトリ・レイヤーに関連付けられた座標系(空間参照システム)です。デフォルトはNULLで、この場合、座標系は関連付けられておらず、NULL以外の値を指定する場合、SDO_COORD_REF_SYS表のSRID列の値を指定する必要があります(『Oracle Spatial開発者ガイド』を参照)。

node_table_storage

<topology-name>_NODE$表(「ノード情報表」を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。

edge_table_storage

<topology-name>_EDGE$表(「エッジ情報表」を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。

face_table_storage

<topology-name>_FACE$表(「フェイス情報表」を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。

history_table_storage

<topology-name>_HISTORY$表(「履歴情報表」を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。

digits_right_of_decimal

既存のトポロジにフィーチャを追加する際に、任意の座標位置を表すために小数点の右側で使用できる桁数です。追加されるすべてのフィーチャ(Java APIまたは同等のPL/SQLサブプログラムでaddLinearGeometryメソッド、addPolygonGeometryメソッドまたはaddPointGeometryメソッドへの引数として渡されるフィーチャ)は、このパラメータで指定されている小数点の右側の桁数に自動的に切り捨てられます。デフォルト値は16です。

この値は、受信データの精度に基づいて有効とされる小数点の右側の最後の桁に一致するように設定する必要があります。このメカニズムは、フィーチャ挿入処理中の計算ジオメトリの安定性を向上するために、また微小ポリゴンが作成されてしまうなどの予期しない結果を最小限に抑えるために提供されています。

使用上のノート

このプロシージャは、<topology-name>_EDGE$表、<topology-name>_NODE$表、<topology-name>_FACE$表および<topology-name>_HISTORY$表(「トポロジ・データ・モデル表」を参照)を作成します。また、これらの表の主キーにBツリー索引を作成します。また、トポロジのメタデータも作成します。

sridパラメータでは、測地座標系を指定できますが、トポロジに対するすべてのSpatialの内部演算子では、測地ではなくデカルトの算術演算子が使用されます。(測地座標系およびその他の座標系については、『Oracle Spatial開発者ガイド』を参照してください。)

ノード表、エッジ表、フェイス表および履歴表はパーティションなしでも作成できますが、これらの表を変更してパーティション化することもできます。また、パーティション化した表にパーティション化した空間索引を作成することもできます(『Oracle Spatial開発者ガイド』を参照)。

このプロシージャは、自動的にコミット操作を実行するため、ロールバックすることができません。作成したトポロジを削除するには、SDO_TOPO.DROP_TOPOLOGYプロシージャをコールします。

トポロジがすでに存在する場合、例外が発生します。

次の例では、CITY_DATAという名前のトポロジを作成します。このトポロジ内の空間ジオメトリの許容差は0.5で、WGS 84座標系(緯度と経度の座標で、SRID値は8307)が使用されます。(この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)

EXECUTE SDO_TOPO.CREATE_TOPOLOGY('CITY_DATA', 0.5, 8307);