3.1 SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER
構文
SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER( topology IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2, topo_geometry_layer_type IN VARCHAR2, relation_table_storage IN VARCHAR2 DEFAULT NULL, child_layer_id IN NUMBER DEFAULT NULL);
説明
トポロジ・ジオメトリ・レイヤーをトポロジに追加します。
パラメータ
- topology
-
指定した列内のトポロジ・ジオメトリを含むトポロジ・ジオメトリ・レイヤーを追加するトポロジを指定します。トポロジは、SDO_TOPO.CREATE_TOPOLOGYプロシージャを使用して作成されている必要があります。
- table_name
-
column_name
で指定した列を含むトポロジ・ジオメトリ・レイヤー表の名前を指定します。 - column_name
-
トポロジに追加するトポロジ・ジオメトリ・レイヤー内のトポロジ・ジオメトリを含む(SDO_TOPO_GEOMETRY型の)列の名前を指定します。
- topo_geometry_layer_type
-
トポロジ・ジオメトリ・レイヤーのタイプ(POINT、LINE、CURVE、POLYGONまたはCOLLECTION)を指定します。
- relation_table_storage
-
<topology-name>_RELATION$表(「関係情報表」を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、
TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。 - child_layer_id
-
トポロジがトポロジ・ジオメトリ・レイヤー階層を持つ場合、このレイヤーの子トポロジ・ジオメトリ・レイヤーのレイヤーID番号を指定します。(トポロジ・ジオメトリ・レイヤー階層については、「トポロジ・ジオメトリ・レイヤー階層」を参照してください。)トポロジがトポロジ・ジオメトリ・レイヤー階層を持つときにこのパラメータを指定しない場合、トポロジ・ジオメトリ・レイヤーは階層の最も低いレベル(レベル0 (ゼロ))に追加されます。
トポロジがトポロジ・ジオメトリ・レイヤー階層を持たない場合は、トポロジ・ジオメトリ・レイヤーの追加時にこのパラメータを指定しないでください。
使用上のノート
任意のトポロジに対してこのプロシージャを最初にコールしたときに、<topology-name>_RELATION$表(「関係情報表」を参照)が作成されます。
このプロシージャは、自動的にコミット操作を実行するため、ロールバックすることができません。作成したトポロジを削除するには、SDO_TOPO.DELETE_TOPO_GEOMETRY_LAYERプロシージャをコールします。
このプロシージャによって、トポロジ・ジオメトリ内の空間フィーチャに空間索引が作成され、さらにトポロジ・ジオメトリ内のtg_type
とtg_id
の組合せに対するBツリー索引が作成されます。
CONNECTロールおよびRESOURCEロールを付与されているユーザーには、このプロシージャをコールするためにCREATE VIEW権限も付与されている必要があります。これは、Oracle Database 10g リリース2でのCONNECTロールの権限削減により、CONNECTロールからCREATE CLUSTER、CREATE DATABASE LINK、CREATE SEQUENCE、ALTER SESSION、CREATE SYNONYM、CREATE TABLE、CREATE VIEWの権限が削除されたため必要になります。
トポロジ・ジオメトリ・レイヤー表(table_name
パラメータ)は、オブジェクト表として指定することはできません。
topology
、table_name
またはcolumn_name
を指定していない場合、またはtopo_geometry_layer_type
の値がサポートされていない場合、例外が発生します。
例
次の例では、トポロジ・ジオメトリ・レイヤーをCITY_DATA
トポロジに追加します。トポロジ・ジオメトリ・レイヤーは、LAND_PARCELS表のFEATURE列内のポリゴン・ジオメトリで構成されています。(この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)
EXECUTE SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('CITY_DATA', 'LAND_PARCELS', 'FEATURE', 'POLYGON');
親トピック: SDO_TOPOパッケージ・サブプログラム