6.19 SDO_NET.CREATE_TOPO_NETWORK

構文

SDO_NET.CREATE_TOPO_NETWORK(
     network                IN VARCHAR2,
     no_of_hierarchy_levels IN NUMBER,
     is_directed            IN BOOLEAN,
     node_with_cost         IN BOOLEAN DEFAULT FALSE,
     is_complex             IN BOOLEAN DEFAULT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

or

SDO_NET.CREATE_TOPO_NETWORK(
     network                IN VARCHAR2,
     no_of_hierarchy_levels IN NUMBER,
     is_directed            IN BOOLEAN,
     node_table_name        IN VARCHAR2,
     node_cost_column       IN VARCHAR2,
     link_table_name        IN VARCHAR2,
     link_cost_column       IN VARCHAR2,
     path_table_name        IN VARCHAR2,
     path_geom_column       IN VARCHAR2,
     path_link_table_name   IN VARCHAR2,
     is_complex             IN BOOLEAN DEFAULT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

or

SDO_NET.CREATE_TOPO_NETWORK(
     network                IN VARCHAR2,
     no_of_hierarchy_levels IN NUMBER,
     is_directed            IN BOOLEAN,
     node_table_name        IN VARCHAR2,
     node_geom_column       IN VARCHAR2,
     node_cost_column       IN VARCHAR2,
     link_table_name        IN VARCHAR2,
     link_cost_column       IN VARCHAR2,
     path_table_name        IN VARCHAR2,
     path_geom_column       IN VARCHAR2,
     path_link_table_name   IN VARCHAR2,
     subpath_table_name     IN VARCHAR2,
     subpath_geom_column    IN VARCHAR2,
     is_complex             IN BOOLEAN DEFAULT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

説明

SDO_TOPO_GEOMETRYオブジェクトを含む空間トポロジ・ネットワークを作成してすべての必要な表を作成し、そのネットワークのメタデータを更新します。

パラメータ

network

ネットワーク名を指定します。

no_of_hierarchy_levels

ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、「ネットワーク階層」を参照してください。)

is_directed

ブール値を指定します。リンクが有向リンクである場合はTRUE、無向リンクの場合(有向リンクでない場合)はFALSEを指定します。

node_with_cost

ブール値を指定します。TRUEを指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE (デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。

node_table_name

作成するノード表の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。

node_cost_column

ノード表のコスト列の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。

link_table_name

作成するリンク表の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。

link_cost_column

リンク表のコスト列の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。

path_table_name

作成するパス表の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。

path_geom_column

パス表のジオメトリ列の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。

path_link_table_name

作成するパスリンク表の名前を指定します。(パスリンク表については、「パスリンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。

subpath_table_name

作成するサブパス表の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)

subpath_geom_column

サブパス表のジオメトリ列の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)

is_complex

将来の使用のために予約されています。今回のリリースでは、無視されます。

storage_parameters

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

使用上のノート

このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(「xxx_SDO_NETWORK_METADATAビュー」を参照)に適切な情報を挿入します。ノード表およびリンク表に、SDO_TOPO_GEOMETRY型のTOPO_GEOMETRYという名前のトポロジ・ジオメトリ列が含まれます。

作成するいずれかの表がすでに存在する場合、例外が発生します。

このプロシージャには2つの形式があります。簡単な方の形式では、表名およびジオメトリ列名とコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびジオメトリ列とコスト列の名前を指定できます。

このプロシージャを使用するかわりに、SDO_NET.CREATE_NODE_TABLESDO_NET.CREATE_LINK_TABLESDO_NET.CREATE_PATH_TABLEおよびSDO_NET.CREATE_PATH_LINK_TABLEプロシージャを使用して表を作成し、USER_SDO_NETWORK_METADATAビューに適切な行を挿入することによって、ネットワークを作成できます。

次の例では、TOPO_NET1という名前の有向空間トポロジ・ジオメトリ・ネットワークを作成します。また、TOPO_NET1_NODE$、TOPO_NET1_LINK$、TOPO_NET1_PATH$およびTOPO_NET1_PLINK$表を作成し、xxx_SDO_NETWORK_METADATAビューを更新します。トポロジ・ジオメトリ列の名前はTOPO_GEOMETRYになります。ノード表とリンク表の両方に、COSTという名前のコスト列が含まれます。

EXECUTE SDO_NET.CREATE_TOPO_NETWORK('TOPO_NET1', 1, TRUE, TRUE);