6 SDO_NETパッケージ・サブプログラム

MDSYS.SDO_NETパッケージには、ネットワーク管理を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。

この章で説明するサブプログラムを使用する場合は、概念を理解しておく必要があります(「ネットワーク・データ・モデル・グラフの概要」を参照)。

論理カテゴリに分類されたサブプログラムのリストは、「ネットワーク・データ・モデル・グラフのPL/SQLインタフェース」を参照してください。この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。

トピック:

6.1 SDO_NET.ADD_CHILD_FEATURE

構文

SDO_NET.ADD_CHILD_FEATURE(
     parent_layer_id   IN NUMBER,
     parent_feature_id IN NUMBER,
     child_layer_id    IN NUMBER,
     child_feature_id  IN SDO_NET_LAYER_FEAT,
     sequence_number   IN NUMBER DEFAULT NULL,
     check_integrity   IN BOOLEAN DEFAULT TRUE);

説明

フィーチャを、指定した親フィーチャの子フィーチャとして関連付けます。

パラメータ

parent_layer_id

親フィーチャ・レイヤーのIDを指定します。

parent_feature_id

指定した子フィーチャの親フィーチャになるフィーチャのIDを指定します。

child_layer_id

子フィーチャ・レイヤーのIDを指定します。

child_feature_id

指定した親フィーチャの子フィーチャとして関連付けられるフィーチャのIDを指定します。(SDO_NET_LAYER_FEAT型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

sequence_number

子フィーチャ・レイヤー内のchild_feature_idフィーチャの順序番号を指定します。このパラメータがNULLの場合、現在の最終番号の次の順序番号が割り当てられます。

check_integrity

TRUE (デフォルト)を指定すると、子フィーチャが存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、子フィーチャが存在するかどうかを確認しません。

使用上の注意

指定した子フィーチャは、すでに存在している必要があります。

複数のフィーチャを子フィーチャとして関連付けるには、SDO_NET.ADD_CHILD_FEATURESプロシージャを使用します。

次の例では、順序番号2で子フィーチャを追加します。

DECLARE
  parent_layer_id NUMBER;
  parent_feature_id NUMBER := 1;
  child_layer_id NUMBER;
  child_feature_id NUMBER := 3;
BEGIN
  parent_layer_id := sdo_net.get_feature_layer_id('GRID', 'PARENT_LAYER');
  child_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  sdo_net.add_child_feature(parent_layer_id, parent_feature_id, child_layer_id, child_feature_id, 2, true);
END;
/

6.2 SDO_NET.ADD_CHILD_FEATURES

構文

SDO_NET.ADD_CHILD_FEATURES(
     parent_layer_id   IN NUMBER,
     parent_feature_id IN NUMBER,
     child_feature_ids IN SDO_NET_LAYER_FEAT_ARRAY,
     check_integrity   IN BOOLEAN DEFAULT TRUE);

説明

複数のフィーチャを、指定した親フィーチャの子フィーチャとして関連付けます。

パラメータ

parent_layer_id

親フィーチャ・レイヤーのIDを指定します。

parent_feature_id

指定した子フィーチャの親フィーチャになるフィーチャのIDを指定します。

child_feature_ids

指定した親フィーチャの子フィーチャとして関連付けられるフィーチャのIDを指定します。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

check_integrity

TRUE (デフォルト)を指定すると、子フィーチャが存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、子フィーチャが存在するかどうかを確認しません。

使用上の注意

指定した子フィーチャは、すでに存在している必要があります。

単一のフィーチャを子フィーチャとして関連付けるには、SDO_NET.ADD_CHILD_FEATUREプロシージャを使用します。

次の例では、2つの子フィーチャを親フィーチャの最後に追加します。

DECLARE
  parent_layer_id NUMBER;
  parent_feature_id NUMBER := 1;
  child_layer_id NUMBER;
  child_feature_ids SDO_NET_LAYER_FEAT_ARRAY := SDO_NET_LAYER_FEAT_ARRAY();
BEGIN
  parent_layer_id := sdo_net.get_feature_layer_id('GRID', 'PARENT_LAYER');
  child_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  child_feature_ids.extend;
  child_feature_ids(1) := SDO_NET_LAYER_FEAT(child_layer_id, 4);
  child_feature_ids.extend;
  child_feature_ids(2) := SDO_NET_LAYER_FEAT(child_layer_id, 10);
  sdo_net.add_child_features(parent_layer_id, parent_feature_id, child_feature_ids, true);
END;
/

6.3 SDO_NET.ADD_FEATURE

構文

SDO_NET.ADD_FEATURE(
     feature_layer_id  IN NUMBER,
     feature_id        IN NUMBER,
     feature_elements  IN SDO_NET_FEAT_ELEM_ARRAY DEFAULT NULL,
     child_feature_ids IN SDO_NET_LAYER_FEAT_ARRAY DEFAULT NULL,
     check_integrity   IN BOOLEAN DEFAULT TRUE);

説明

フィーチャ・レイヤーにフィーチャを追加します。

パラメータ

feature_layer_id

フィーチャの追加先となるフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャ・レイヤーに追加されるフィーチャのIDを指定します。

feature_elements

追加されるフィーチャのフィーチャ要素を指定します。このパラメータがNULLの場合、このフィーチャに対して定義されているフィーチャ要素はありません。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

child_feature_ids

フィーチャとともに追加される、フィーチャの子フィーチャのIDを指定します。このパラメータがNULLの場合、追加される子フィーチャはありません。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

check_integrity

TRUE (デフォルト)を指定すると、入力ネットワーク要素が存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、入力ネットワーク要素が存在するかどうかを確認しません。

使用上の注意

フィーチャ・レイヤー内のフィーチャを更新するには、SDO_NET.UPDATE_FEATUREプロシージャを使用します。

次の例では、リンク1314上の20%の位置にある点に関連付けられているフィーチャを追加します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  elements SDO_NET_FEAT_ELEM_ARRAY := SDO_NET_FEAT_ELEM_ARRAY();
  link_id NUMBER := 1314;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  elements.extend;
  elements(1) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.2, null);
  sdo_net.add_feature(feature_layer_id, feature_id, elements, null);  
END;
/

6.4 SDO_NET.ADD_FEATURE_ELEMENT

構文

SDO_NET.ADD_FEATURE_ELEMENT(
     feature_layer_id IN NUMBER,
     feature_id       IN NUMBER,
     feature_element  IN SDO_NET_FEAT_ELEM,
     sequence_number  IN NUMBER DEFAULT NULL,
     check_integrity  IN BOOLEAN DEFAULT TRUE);

説明

フィーチャにフィーチャ要素を追加します。

パラメータ

feature_layer_id

フィーチャのフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャのIDです。

feature_element

フィーチャに追加されるフィーチャ要素を指定します。このフィーチャ要素は、フィーチャに含まれる既存の任意のフィーチャ要素の最後に自動的に追加されます。(SDO_NET_FEAT_ELEM型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

sequence_number

フィーチャに追加されるフィーチャ要素の順序番号を指定します。このパラメータがNULLの場合、現在の最終番号の次の順序番号が割り当てられます。

check_integrity

TRUE (デフォルト)を指定すると、入力ネットワーク要素が存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、入力ネットワーク要素が存在するかどうかを確認しません。

使用上の注意

1回の操作で複数のフィーチャ要素をフィーチャに追加するには、SDO_NET.ADD_FEATURE_ELEMENTSプロシージャを使用します。

フィーチャ要素を更新するには、SDO_NET.UPDATE_FEATURE_ELEMENTプロシージャを使用します。

次の例では、ノードID 13の点フィーチャを順序番号2で追加します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  feature_element SDO_NET_FEAT_ELEM;
  node_id NUMBER := 13;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  feature_element := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_PON, node_id, null, null);
  sdo_net.add_feature_element(feature_layer_id, feature_id, feature_element, 2);
END;
/

6.5 SDO_NET.ADD_FEATURE_ELEMENTS

構文

SDO_NET.ADD_FEATURE_ELEMENTS(
     feature_layer_id IN NUMBER,
     feature_id       IN NUMBER,
     feature_elements IN SDO_NET_FEAT_ELEM,_ARRAY,
     check_integrity  IN BOOLEAN DEFAULT TRUE);

説明

フィーチャ要素の配列をフィーチャに追加します。

パラメータ

feature_layer_id

フィーチャのフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャのIDです。

feature_elements

フィーチャに追加されるフィーチャ要素を指定します。これらのフィーチャ要素は、フィーチャに含まれる既存の任意のフィーチャ要素の最後に自動的に追加されます。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

check_integrity

TRUE (デフォルト)を指定すると、入力ネットワーク要素が存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、入力ネットワーク要素が存在するかどうかを確認しません。

使用上の注意

単一のフィーチャ要素をフィーチャに追加するには、SDO_NET.ADD_FEATURE_ELEMENTプロシージャを使用します。

次の例では、2つの点フィーチャ要素を、フィーチャID 1に関連付けられたフィーチャ要素の最後に追加します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  elements SDO_NET_FEAT_ELEM_ARRAY := SDO_NET_FEAT_ELEM_ARRAY();
  link_id NUMBER := 1314;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  elements.extend;
  elements(1) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.7, null);
  elements.extend;
  elements(2) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.8, null);
  sdo_net.add_feature_elements(feature_layer_id, feature_id, elements);
END;
/

6.6 SDO_NET.ADD_FEATURE_LAYER

構文

SDO_NET.ADD_FEATURE_LAYER(
     network_name IN VARCHAR2,
     feature_layer_name IN VARCHAR2,
     feature_layer_type IN VARCHAR2,
     feature_table      IN VARCHAR2,
     relation_table     IN VARCHAR2,
     hierarchy_table    IN VARCHAR2);

説明

フィーチャ・レイヤーを追加します。

パラメータ

network_name

ネットワーク名です。

feature_layer_name

フィーチャ・レイヤーの名前を指定します。

feature_layer_type

(表5-1から)レイヤー内のフィーチャのタイプを指定します。

feature_table

フィーチャ表(「フィーチャ表」を参照)の名前を指定します。

relation_table

フィーチャ要素関係表(「フィーチャ要素関係表」を参照)の名前を指定します。

hierarchy_table

フィーチャ階層表(「フィーチャ階層表」を参照)の名前を指定します。

使用上の注意

フィーチャ・レイヤーIDは、フィーチャ・レイヤーに対して自動的に生成されます。

次の例では、複数の点(SDO_NET.FEAT_TYPE_MPOINT)で構成されたPOI (対象点)という名前のフィーチャ・レイヤーを作成します。

BEGIN
  sdo_net.add_feature_layer(
    'GRID',
    'POI',
    SDO_NET.FEAT_TYPE_MPOINT,
    'POI_FEAT$',
    'POI_REL$',
    NULL
  );
END;
/

6.7 SDO_NET.COMPUTE_PATH_GEOMETRY

構文

SDO_NET.COMPUTE_PATH_GEOMETRY(
     network   IN VARCHAR2,
     path_id   IN NUMBER,
     tolerance IN NUMBER
) RETURN SDO_GEOMETRY;

説明

パスの空間ジオメトリを戻します。

パラメータ

network

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

path_id

パスID番号を指定します。

tolerance

ネットワーク内のジオメトリに関連付けられた許容差を指定します。(許容差については、『Oracle Spatial and Graph開発者ガイド』の第1章を参照してください。)この値は、ネットワークのリンク表およびノード表のジオメトリの許容差と一致している必要があります。

使用上の注意

このファンクションは、指定されたパスについて、SDO_GEOMETRYオブジェクトを計算して戻します。

このファンクションおよびSDO_NET_MEM.PATH.COMPUTE_GEOMETRYプロシージャ(「SDO_NETパッケージ・サブプログラム」を参照)は両方ともパスのジオメトリを計算しますが、次のような相違点があります。

  • SDO_NET.COMPUTE_PATH_GEOMETRYファンクションは、データベース内のリンクからのパスを計算し、ネットワーク・メモリー・オブジェクトを使用しません。これは、パスのジオメトリを戻します。

  • SDO_NET_MEM.PATH.COMPUTE_GEOMETRYプロシージャは、ロード済のネットワーク・メモリー・オブジェクトを使用してパスを計算します。パスのジオメトリは戻されないため、SDO_NET_MEM.PATH.GET_GEOMETRYファンクションを使用してジオメトリを取得する必要があります。

次の例では、SDO_NET1という名前のネットワーク内にパスIDが1のパスの空間ジオメトリを計算して戻します(許容差は0.005を使用)。このパスは単一リンクで構成されているため、戻されるパスのジオメトリは(1,1)から(15,1)への直線になります。

SELECT SDO_NET.COMPUTE_PATH_GEOMETRY('SDO_NET1', 1, 0.005) FROM DUAL;
 
SDO_NET.COMPUTE_PATH_GEOMETRY('SDO_NET1',1,0.005)(SDO_GTYPE, SDO_SRID, SDO_POINT
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
1, 1, 15, 1))

6.8 SDO_NET.COPY_NETWORK

構文

SDO_NET.COPY_NETWORK(
     source_network     IN VARCHAR2,
     target_network     IN VARCHAR2,
     storage_parameters IN VARCHAR2 DEFAULT NULL);

説明

メタデータ表を含む、ネットワークのコピーを作成します。

パラメータ

source_network

コピーするネットワークの名前を指定します。

target_network

source_networkのコピーとして作成するネットワークの名前を指定します。

storage_parameters

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

使用上の注意

このプロシージャは、xxx_SDO_NETWORK_METADATAビュー(「xxx_SDO_NETWORK_METADATAビュー」を参照)に、source_networkと同じ情報(新しいネットワーク名を除く)を持つtarget_networkのエントリを作成します。

また、target_networkの新しいノード表、リンク表およびパス表(source_networkにパス表が存在する場合)を、source_networkのこれらの表のメタデータおよびデータに基づいて作成します。これらの表には、<target-network>_NODE$、<target-network>_LINK$および<target-network>_PATH$の形式の名前が付けられます。たとえば、target_networkの値がROADS_NETWORK2で、source_networkにパス表が存在する場合、作成されるメタデータ表の名前はROADS_NETWORK2_NODE$、ROADS_NETWORK2_LINK$およびROADS_NETWORK2_PATH$になります。

次の例では、ROADS_NETWORKという名前のネットワークのコピーであるROADS_NETWORK2という名前の新しいネットワークを作成します。

EXECUTE SDO_NET.COPY_NETWORK('ROADS_NETWORK', 'ROADS_NETWORK2');

6.9 SDO_NET.CREATE_LINK_TABLE

構文

SDO_NET.CREATE_LINK_TABLE(
     table_name             IN VARCHAR2,
     geom_type              IN VARCHAR2,
     geom_column            IN VARCHAR2,
     cost_column            IN VARCHAR2,
     no_of_hierarchy_levels IN NUMBER,
     add_bidirected_column  IN BOOLEAN DEFALT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

説明

ネットワークのリンク表を作成します。

パラメータ

table_name

リンク表の名前を指定します。

geom_type

空間ネットワークのリンクのジオメトリ・タイプを示す値を指定します。非LRSのSDO_GEOMETRYオブジェクトの場合はSDO_GEOMETRY、LRSのSDO_GEOMETRYオブジェクトの場合はLRS_GEOMETRY、SDO_TOPO_GEOMETRYオブジェクトの場合はTOPO_GEOMETRYです。

geom_column

空間ネットワーク内のリンクに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。(geom_type値の綴りが正しくない場合、geom_column列は表に含まれません。)

cost_column

リンクに関連付けるコスト値を含む列の名前を指定します。

no_of_hierarchy_levels

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

add_bidirected_column

TRUEを指定すると、リンク表にBIDIRECTEDという名前の列が追加され、FALSE (デフォルト)を指定すると、リンク表にBIDIRECTEDという名前の列が追加されません。

storage_parameters

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

使用上の注意

リンク表については、「リンク表」を参照してください。

次の例では、ROADS_LINKSという名前のリンク表を作成します。この表は、LRSジオメトリを含むLINK_GEOMETRYという名前のジオメトリ列とCOSTという名前のコスト列を含み、単一の階層レベルを持ちます。

EXECUTE SDO_NET.CREATE_LINK_TABLE('ROADS_LINKS', 'LRS_GEOMETRY', 'LINK_GEOMETRY', 'COST', 1);

6.10 SDO_NET.CREATE_LOGICAL_NETWORK

構文

SDO_NET.CREATE_LOGICAL_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_LOGICAL_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_link_table_name   IN VARCHAR2,
     subpath_table_name     IN VARCHAR2,
     is_complex             IN BOOLEAN DEFAULT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

説明

論理ネットワークを作成してすべての必要な表を作成し、そのネットワークのメタデータを更新します。

パラメータ

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_link_table_name

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

subpath_table_name

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

is_complex

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

storage_parameters

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

使用上の注意

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

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

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

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

次の例では、LOG_NET1という名前の有向論理ネットワークを作成します。また、LOG_NET1_NODE$、LOG_NET1_LINK$、LOG_NET1_PATH$およびLOG_NET1_PLINK$表を作成し、xxx_SDO_NETWORK_METADATAビューを更新します。ノード表とリンク表の両方に、COSTという名前のコスト列が含まれます。

EXECUTE SDO_NET.CREATE_LOGICAL_NETWORK('LOG_NET1', 1, TRUE, TRUE);

6.11 SDO_NET.CREATE_LRS_NETWORK

構文

SDO_NET.CREATE_LRS_NETWORK(
     network IN VARCHAR2,
     lrs_table_name         IN VARCHAR2,
     lrs_geom_column        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_LRS_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,
     lrs_table_name         IN VARCHAR2,
     lrs_geom_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);

説明

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

パラメータ

network

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

lrs_table_name

LRSジオメトリ列を含む表の名前を指定します。

lrs_geom_column

LRSジオメトリ(線形参照のメジャー情報を含むSDO_GEOMETRYオブジェクト)を含むlrs_table_nameの列の名前を指定します。

is_directed

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

no_of_hierarchy_levels

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

node_with_cost

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

is_complex

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

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

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

storage_parameters

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

使用上の注意

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

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

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

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

次の例では、LRS_NET1という名前の有向空間ネットワークを作成します。LRSジオメトリは、LRS_TABという名前の表のLRS_GEOMという名前の列に存在します。また、LRS_NET1_NODE$、LRS_NET1_LINK$、LRS_NET1_PATH$およびLRS_NET1_PLINK$表を作成し、xxx_SDO_NETWORK_METADATAビューを更新します。すべてのジオメトリ列は、GEOMETRYという名前になります。ノード表とリンク表の両方に、COSTという名前のコスト列が含まれます。

EXECUTE SDO_NET.CREATE_LRS_NETWORK('LRS_NET1', 'LRS_TAB', 'LRS_GEOM', 1, TRUE, TRUE);

6.12 SDO_NET.CREATE_LRS_TABLE

構文

SDO_NET.CREATE_LRS_TABLE(
     table_name         IN VARCHAR2,
     geom_column        IN VARCHAR2,
     storage_parameters IN VARCHAR2 DEFAULT NULL);

説明

Oracle Spatial and Graphの線形参照システム(LRS)・ジオメトリを格納するための表を作成します。

パラメータ

table_name

geom_columnで指定したジオメトリ列を含む表の名前を指定します。

geom_column

ジオメトリ・オブジェクトを含む(SDO_GEOMETRY型の)列の名前を指定します。

storage_parameters

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

使用上の注意

このプロシージャは、2つの列(NUMBER型のGEOM_IDおよびSDO_GEOMETRY型のgeom_column)を含むtable_nameという名前の表を作成します。

作成された表をLRSジオメトリの格納に使用する必要はありませんが、このプロシージャは、そのようなジオメトリを格納するための表の作成に役立ちます。多くの場合、表にデータを格納する前に、表を変更して他の列を追加します。

次の例では、GEOMという名前のジオメトリ列を含むHIGHWAYSという名前の表を作成します。

EXECUTE SDO_NET.CREATE_LRS_TABLE('HIGHWAYS', 'GEOM');
 
PL/SQL procedure successfully completed.
 
DESCRIBE highways
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 GEOM_ID                                   NOT NULL NUMBER
 GEOM                                               MDSYS.SDO_GEOMETRY

6.13 SDO_NET.CREATE_NODE_TABLE

構文

SDO_NET.CREATE_NODE_TABLE(
     table_name             IN VARCHAR2,
     geom_type              IN VARCHAR2,
     geom_column            IN VARCHAR2,
     cost_column            IN VARCHAR2,
     no_of_hierarchy_levels IN NUMBER,
     is_complex             IN BOOLEAN DEFAULT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

or

SDO_NET.CREATE_NODE_TABLE(
     table_name             IN VARCHAR2,
     geom_type              IN VARCHAR2,
     geom_column            IN VARCHAR2,
     cost_column            IN VARCHAR2,
     partition_column       IN VARCHAR2,
     no_of_hierarchy_levels IN NUMBER,
     is_complex             IN BOOLEAN DEFAULT FALSE,
     storage_parameters     IN VARCHAR2 DEFAULT NULL);

説明

ノード表を作成します。

パラメータ

table_name

ノード表の名前を指定します。

geom_type

空間ネットワークのノードのジオメトリ・タイプを示す値を指定します。非LRSのSDO_GEOMETRYオブジェクトの場合はSDO_GEOMETRY、LRSのSDO_GEOMETRYオブジェクトの場合はLRS_GEOMETRY、SDO_TOPO_GEOMETRYオブジェクトの場合はTOPO_GEOMETRYです。(geom_type値の綴りが正しくない場合、geom_column列は表に含まれません。)

geom_column

空間ネットワーク内のノードに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。

cost_column

ノードに関連付けるコスト値を含む列の名前を指定します。

partition_column

ノードに関連付けるパーティションID値を含む列の名前を指定します。

no_of_hierarchy_levels

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

is_complex

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

storage_parameters

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

使用上の注意

このプロシージャには、2つの構文があります。1つはpartition_columnパラメータが含まれておらず、もう1つはpartition_columnパラメータが含まれています。

ノード表については、「ノード表」を参照してください。

次の例では、ROADS_NODESという名前のノード表を作成します。この表は、LRSジオメトリを含むNODE_GEOMETRYという名前のジオメトリ列を含み、単一の階層レベルを持ちます。コスト列は含みません。

EXECUTE SDO_NET.CREATE_NODE_TABLE('ROADS_NODES', 'LRS_GEOMETRY', 'NODE_GEOMETRY', NULL, 1);

6.14 SDO_NET.CREATE_PARTITION_TABLE

構文

SDO_NET.CREATE_PARTITION_TABLE(
     table_name IN VARCHAR2);

説明

パーティション表を作成します。

パラメータ

table_name

パーティション表の名前を指定します。

使用上の注意

パーティション表については、「パーティション表」を参照してください。

ロード・オンデマンド方式を使用した分析を実行するための、パーティション化されたネットワークの使用方法については、「ロード・オンデマンドを使用したネットワーク分析」を参照してください。

次の例では、MY_PART_TABという名前のパーティション表を作成します。

EXECUTE SDO_NET.CREATE_PARTITION_TABLE('MY_PART_TAB');

6.15 SDO_NET.CREATE_PATH_LINK_TABLE

構文

SDO_NET.CREATE_PATH_LINK_TABLE(
     table_name         IN VARCHAR2,
     storage_parameters IN VARCHAR2 DEFAULT NULL);

説明

パスリンク表(パス表の各パスに各リンクの行を持つ表)を作成します。

パラメータ

table_name

パスリンク表の名前を指定します。

storage_parameters

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

使用上の注意

パスリンク表については、「パスリンク表」を参照してください。

ネットワークでパスを使用するには、パスリンク表を移入する必要があります。

次の例では、ROADS_PATHS_LINKSという名前のパスリンク表を作成します。

EXECUTE SDO_NET.CREATE_PATH_LINK_TABLE('ROADS_PATHS_LINKS');

6.16 SDO_NET.CREATE_PATH_TABLE

構文

SDO_NET.CREATE_PATH_TABLE(
     table_name         IN VARCHAR2,
     geom_column        IN VARCHAR2,
     storage_parameters IN VARCHAR2 DEFAULT NULL);

説明

パス表を作成します。

パラメータ

table_name

パス表の名前を指定します。

geom_column

空間ネットワークのパスに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。

storage_parameters

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

使用上の注意

パス表については、「パス表」を参照してください。

ネットワークでパスを使用するには、パス表の作成後にSDO_NET.CREATE_PATH_LINK_TABLEプロシージャを使用してパスリンク表を作成し、そのパスリンク表を移入する必要があります。

次の例では、PATH_GEOMETRYという名前のジオメトリ列を含むROADS_PATHSという名前のパス表を作成します。

EXECUTE SDO_NET.CREATE_PATH_TABLE('ROADS_PATHS', 'PATH_GEOMETRY');

6.17 SDO_NET.CREATE_SDO_NETWORK

構文

SDO_NET.CREATE_SDO_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_SDO_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_geom_column       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);

説明

非LRSのSDO_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_geom_column

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

node_cost_column

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

link_table_name

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

link_geom_column

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

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ビュー」を参照)に適切な情報を挿入します。

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

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

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

次の例では、SDO_NET1という名前の有向空間ネットワークを作成します。また、SDO_NET1_NODE$、SDO_NET1_LINK$、SDO_NET1_PATH$およびSDO_NET1_PLINK$表を作成し、xxx_SDO_NETWORK_METADATAビューを更新します。すべてのジオメトリ列は、GEOMETRYという名前になります。ノード表とリンク表の両方に、COSTという名前のコスト列が含まれます。

EXECUTE SDO_NET.CREATE_SDO_NETWORK('SDO_NET1', 1, TRUE, TRUE);

6.18 SDO_NET.CREATE_SUBPATH_TABLE

構文

SDO_NET.CREATE_SUBPATH_TABLE(
     table_name         IN VARCHAR2,
     geom_column        IN VARCHAR2,
     storage_parameters IN VARCHAR2 DEFAULT NULL);

説明

サブパス表を作成します。

パラメータ

table_name

サブパス表の名前を指定します。

geom_column

空間ネットワークのサブパスに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。

storage_parameters

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

使用上の注意

サブパス表については、「サブパス表」を参照してください。

ネットワークでサブパスを使用するには、1つ以上のパス表およびそれに関連するパスリンク表を作成する必要があります。

次の例では、SUBPATH_GEOMETRYという名前のジオメトリ列を含むROADS_SUBPATHSという名前のサブパス表を作成します。

EXECUTE SDO_NET.CREATE_SUBPATH_TABLE('ROADS_SUBPATHS', 'SUBPATH_GEOMETRY');

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);

6.20 SDO_NET.DELETE_CHILD_FEATURES

構文

SDO_NET.DELETE_CHILD_FEATURES(
     parent_layer_id   IN NUMBER,
     parent_feature_id IN NUMBER,
     child_feature_ids IN SDO_NET_LAYER_FEAT_ARRAY);

説明

入力子フィーチャの親子関係を削除します。

パラメータ

parent_layer_id

親フィーチャ・レイヤーのIDを指定します。

parent_feature_id

指定した子フィーチャの親フィーチャのIDを指定します。

child_feature_ids

子フィーチャのIDを指定します。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

使用上の注意

指定した親フィーチャおよび子フィーチャは、必ず存在している必要があります。

指定した順序点で子フィーチャを削除するには、SDO_NET.DELETE_CHILD_FEATURES_ATプロシージャを使用します。

次の例では、POIフィーチャ・レイヤー内のフィーチャIDが1の子フィーチャを削除します。

DECLARE
  parent_layer_id NUMBER;
  parent_feature_id NUMBER := 1;
  child_layer_id NUMBER;
  child_feature_ids SDO_NET_LAYER_FEAT_ARRAY := SDO_NET_LAYER_FEAT_ARRAY();
BEGIN
  parent_layer_id := sdo_net.get_feature_layer_id('GRID', 'PARENT_LAYER');
  child_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  child_feature_ids.extend;
  child_feature_ids(1) := SDO_NET_LAYER_FEAT(child_layer_id, 1);
  sdo_net.delete_child_features(parent_layer_id, parent_feature_id, child_feature_ids);
END;
/

6.21 SDO_NET.DELETE_CHILD_FEATURES_AT

構文

SDO_NET.DELETE_CHILD_FEATURES_AT(
     parent_layer_id   IN NUMBER,
     parent_feature_id IN NUMBER,
     sequence_numbers  IN SDO_NUMBER_ARRAY);

説明

指定した順序番号の子フィーチャの親子関係を削除します。

パラメータ

parent_layer_id

親フィーチャ・レイヤーのIDを指定します。

parent_feature_id

指定した子フィーチャの親フィーチャのIDを指定します。

child_feature_ids

子フィーチャのIDを指定します。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

使用上の注意

指定した親フィーチャおよび子フィーチャは、必ず存在している必要があります。

ID値で指定した子フィーチャを削除するには、SDO_NET.DELETE_CHILD_FEATURESプロシージャを使用します。

次の例では、順序番号1の子フィーチャを削除します。

DECLARE
  parent_layer_id NUMBER;
  parent_feature_id NUMBER := 1;
  sequence_numbers SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY(1);
BEGIN
  parent_layer_id := sdo_net.get_feature_layer_id('GRID', 'PARENT_LAYER');
  sdo_net.delete_child_features_at(parent_layer_id, parent_feature_id, sequence_numbers);
END;
/

6.22 SDO_NET.DELETE_DANGLING_FEATURES

構文

SDO_NET.DELETE_DANGLING_FEATURES(
     feature_layer_id IN NUMBER);

説明

フィーチャ・レイヤー内のダングリング・フィーチャを削除します。ダングリング・フィーチャとは、ネットワーク要素(ノードまたはリンク)に関連付けられていないフィーチャです。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

使用上の注意

フィーチャ・レイヤー内のダングリング・フィーチャを検出するには、SDO_NET.GET_DANGLING_FEATURESファンクションを使用します。

次の例では、GRIDネットワーク内のPOIフィーチャ・レイヤーのダングリング・フィーチャを削除します。

DECLARE
  feature_layer_id NUMBER;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  sdo_net.delete_dangling_features(feature_layer_id);
END;
/

6.23 SDO_NET.DELETE_DANGLING_LINKS

構文

SDO_NET.DELETE_DANGLING_LINKS(
     network IN VARCHAR2);

説明

任意のフィーチャ・レイヤー内のいずれのフィーチャからも参照されていないリンクを削除します。

パラメータ

network

ネットワーク名です。

使用上の注意

ネットワーク内のダングリング・リンクを検出するには、SDO_NET.GET_DANGLING_LINKSファンクションを使用します。

次の例では、GRIDネットワーク内のダングリング・リンクを削除します。

EXECUTE sdo_net.delete_dangling_links('GRID');

6.24 SDO_NET.DELETE_DANGLING_NODES

構文

SDO_NET.DELETE_DANGLING_NODES(
     network IN VARCHAR2);

説明

任意のフィーチャ・レイヤー内のいずれのフィーチャからも参照されていないノードを削除します。

パラメータ

network

ネットワーク名です。

使用上の注意

ネットワーク内のダングリング・ノードを検出するには、SDO_NET.GET_DANGLING_NODESファンクションを使用します。

次の例では、GRIDネットワーク内のダングリング・ノードを削除します。

EXECUTE sdo_net.delete_dangling_nodes('GRID');

6.25 SDO_NET.DELETE_FEATURE_ELEMENTS

構文

SDO_NET.DELETE_FEATURE_ELEMENTS(
     feature_layer_id IN NUMBER,
     feature_id       IN NUMBER,
     feature_elements IN SDO_NET_FEAT_ELEM_ARRAY,
     delete_net_elems IN BOOLEAN DEFAULT FALSE);

説明

フィーチャからフィーチャ要素を削除します。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャ要素の削除元となるフィーチャのIDを指定します。

feature_elements

削除されるフィーチャ要素を指定します。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

delete_net_elems

指定したフィーチャのみによって参照されるネットワーク要素もすべて削除するかどうかを制御します(TRUEを指定すると、このような要素も削除され、FALSE (デフォルト)を指定すると、このような要素は削除されません)。

使用上の注意

このプロシージャは、SDO_NET.DELETE_FEATURE_ELEMENTS_ATとは対照的です。

次の例では、指定したフィーチャ・レイヤーから2つの点フィーチャ要素を削除します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  elements SDO_NET_FEAT_ELEM_ARRAY := SDO_NET_FEAT_ELEM_ARRAY();
  link_id NUMBER := 1314;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  elements.extend;
  elements(1) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.2, null);
  elements.extend;
  elements(2) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.7, null);
  sdo_net.delete_feature_elements(feature_layer_id, feature_id, elements);
END;
/

6.26 SDO_NET.DELETE_FEATURE_ELEMENTS_AT

構文

SDO_NET.DELETE_FEATURE_ELEMENTS_AT(
     feature_layer_id IN NUMBER,
     feature_id       IN NUMBER,
     sequence_numbers IN SDO_NUMBER_ARRAY,
     delete_net_elems IN BOOLEAN DEFAULT FALSE);

説明

指定した順序番号のフィーチャ要素をフィーチャから削除します。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャ要素の削除元となるフィーチャのIDを指定します。

sequence_numbers

削除されるフィーチャ要素の順序番号の配列を指定します。

delete_net_elems

指定したフィーチャのみによって参照されるネットワーク要素もすべて削除するかどうかを制御します(TRUEを指定すると、このような要素も削除され、FALSE (デフォルト)を指定すると、このような要素は削除されません)。

使用上の注意

このプロシージャは、SDO_NET.DELETE_FEATURE_ELEMENTSとは対照的です。

次の例では、順序番号1のフィーチャ要素を削除します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  sequence_numbers SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY();
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  sequence_numbers.extend;
  sequence_numbers(1) := 1;
  sdo_net.delete_feature_elements_at(feature_layer_id, feature_id, sequence_numbers);
END;
/

6.27 SDO_NET.DELETE_FEATURES

構文

SDO_NET.DELETE_FEATURES(
     feature_layer_id IN NUMBER,
     feature_ids      IN SDO_NUMBER_ARRAY,
     delete_net_elems IN BOOLEAN DEFAULT FALSE,
     delete_children  IN BOOLEAN DEFAULT FALSE);

説明

フィーチャを削除します。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

feature_ids

削除するフィーチャのIDを指定します。

delete_net_elems

指定したフィーチャのみによって参照されるネットワーク要素もすべて削除するかどうかを制御します(TRUEを指定すると、このような要素も削除され、FALSE (デフォルト)を指定すると、このような要素は削除されません)。

delete_children

指定したフィーチャのみによって参照される子フィーチャもすべて削除するかどうかを制御します(TRUEを指定すると、このようなフィーチャも削除され、FALSE (デフォルト)を指定すると、このようなフィーチャは削除されません)。

使用上の注意

(なし。)

次の例では、GRIDネットワーク内のPOIフィーチャ・レイヤーからフィーチャID 1のフィーチャを削除します。

DECLARE
  feature_layer_id NUMBER;
  feature_ids SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY(1);
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  sdo_net.delete_features(feature_layer_id, feature_ids, false, false);
END;
/

6.28 SDO_NET.DELETE_LINK

構文

SDO_NET.DELETE_LINK(
     network IN VARCHAR2,
     link_id IN NUMBER);

説明

リンクを削除し、すべての依存するネットワーク要素およびフィーチャからこのリンクへのすべての参照も削除します。

パラメータ

network

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

link_id

削除するリンクのIDを指定します。

使用上の注意

このプロシージャは、指定したリンクをリンク表(「リンク表」を参照)から削除して、このリンクに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。

次の例では、SDO_NET2ネットワーク内のリンクIDが1のリンクを削除します。

SELECT SDO_NET.DELETE_LINK('SDO_NET2', 1);

6.29 SDO_NET.DELETE_NODE

構文

SDO_NET.DELETE_NODE(
     network IN VARCHAR2,
     node_id IN NUMBER);

説明

ノードを削除し、すべての依存するネットワーク要素およびフィーチャからこのノードへのすべての参照も削除します。

パラメータ

network

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

node_id

削除するノードのIDを指定します。

使用上の注意

このプロシージャは、指定したノードをノード表(「ノード表」を参照)から削除して、このノードに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したノードがリンク定義に含まれている場合は、それらのリンクは削除されます。削除されたリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。

次の例では、SDO_NET2ネットワーク内のノードIDが1のノードを削除します。

SELECT SDO_NET.DELETE_NODE('SDO_NET2', 1);

6.30 SDO_NET.DELETE_PATH

構文

SDO_NET.DELETE_PATH(
     network IN VARCHAR2,
     path_id IN NUMBER);

説明

パスおよびすべての依存するネットワーク要素を削除します。

パラメータ

network

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

path_id

削除するパスのIDを指定します。

使用上の注意

このプロシージャは、指定したパスをパス表(「パス表」を参照)から削除して、このパスに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したパスにサブパスが含まれている場合は、それらのサブパスも削除されます。

次の例では、SDO_NET2ネットワーク内のパスIDが1のパスを削除します。

SELECT SDO_NET.DELETE_PATH('SDO_NET2', 1);

6.31 SDO_NET.DELETE_PHANTOM_FEATURES

構文

SDO_NET.DELETE_PHANTOM_FEATURES(
     feature_layer_id IN NUMBER);

説明

フィーチャ・レイヤー内のファントム・フィーチャを削除します。ファントム・フィーチャとは、存在しないネットワーク要素(ノードまたはリンク)を参照するフィーチャです。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

使用上の注意

フィーチャ・レイヤー内のファントム・フィーチャを検出するには、SDO_NET.GET_PHANTOM_FEATURESファンクションを使用します。

次の例では、GRIDネットワーク内のPOIフィーチャ・レイヤーのファントム・フィーチャを削除します。

DECLARE
  feature_layer_id NUMBER;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  sdo_net.delete_phantom_features(feature_layer_id);
END;
/

6.32 SDO_NET.DELETE_SUBPATH

構文

SDO_NET.DELETE_SUBPATH(
     network    IN VARCHAR2,
     subpath_id IN NUMBER);

説明

サブパスを削除します。

パラメータ

network

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

subpath_id

削除するサブパスのIDを指定します。

使用上の注意

このプロシージャは、指定したサブパスをパス表(「パス表」を参照)から削除します。サブパス定義に依存している他の要素がないため、このプロシージャでは、他のネットワーク要素は削除されません。

次の例では、SDO_NET2ネットワーク内のサブパスIDが17のサブパスを削除します。

SELECT SDO_NET.DELETE_SUBPATH('SDO_NET2', 17);

6.33 SDO_NET.DEREGISTER_CONSTRAINT

構文

SDO_NET.DEREGISTER_CONSTRAINT(
     constraint_name IN VARCHAR2);

説明

データベースのJavaリポジトリから、指定したネットワーク制約のクラスをアンロード(削除)し、USER_SDO_NETWORK_CONSTRAINTSビュー(「xxx_SDO_NETWORK_CONSTRAINTSビュー」を参照)から該当する制約の行を削除します。

パラメータ

constraint_name

ネットワーク制約の名前を指定します。USER_SDO_NETWORK_CONSTRAINTSビューのCONSTRAINT列の値を一致させる必要があります。

使用上の注意

このプロシージャは、SDO_NET.REGISTER_CONSTRAINTプロシージャなどで、すでに有効化されているネットワーク制約を無効にする場合に使用します。ネットワーク制約の詳細は、「ネットワーク制約」を参照してください。

次の例では、GivenProhibitedTurnという名前のネットワーク制約を登録解除(無効化)します。

EXECUTE SDO_NET.DEREGISTER_CONSTRAINT('GivenProhibitedTurn');

6.34 SDO_NET.DROP_FEATURE_LAYER

構文

SDO_NET.DROP_FEATURE_LAYER(
     network_name       IN VARCHAR2,
     feature_layer_name IN VARCHAR2,
     drop_tables        IN BOOLEAN DEFAULT FALSE);

説明

フィーチャ・レイヤーを削除します。

パラメータ

network_name

削除するフィーチャ・レイヤーを含むネットワークの名前を指定します。

feature_layer_name

削除するフィーチャ・レイヤーの名前を指定します。

drop_tables

関連するすべての表をフィーチャ・レイヤー・メタデータとともに削除するかどうかを制御します(TRUEを指定すると、フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表を削除し、さらにフィーチャ・レイヤー・メタデータを削除しますが、FALSE (デフォルト)を指定すると、フィーチャ・レイヤー・メタデータは削除しますが、フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表は削除しません)。

使用上の注意

(なし。)

次の例では、GRIDネットワーク内のPOIフィーチャ・レイヤーを削除し、さらに(drop_tablestrueであるため)フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表を削除し、フィーチャ・レイヤー・メタデータを削除します。

EXECUTE sdo_net.drop_feature_layer('GRID', 'POI', true);

6.35 SDO_NET.DROP_NETWORK

構文

SDO_NET.DROP_NETWORK(
     network IN VARCHAR2);

説明

ネットワークを削除します。

パラメータ

network

削除するネットワークの名前を指定します。

使用上の注意

このプロシージャは、ネットワークに関連付けられたノード表、リンク表およびパス表と、そのネットワークのメタデータも削除します。

次の例では、ROADS_NETWORKという名前のネットワークを削除します。

EXECUTE SDO_NET.DROP_NETWORK('ROADS_NETWORK');

6.36 SDO_NET.FIND_CONNECTED_COMPONENTS

構文

SDO_NET.FIND_CONNECTED_COMPONENTS(
     network IN VARCHAR2);

説明

ネットワーク内で指定したリンク・レベルに接続されているすべてのコンポーネントを検索し、接続されているコンポーネントの表にその情報を格納します。

パラメータ

network

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

link_level

接続されているコンポーネントを検索するためのリンク・レベルを指定します(デフォルトは1)。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

component_table_name

このプロシージャで作成される、接続されているコンポーネントの表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)接続されているコンポーネント表については、「接続されているコンポーネント表」を参照してください。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

使用上の注意

このプロシージャは、指定したネットワークの各ノードについて、そのノードから到達可能な他のすべてのノードの情報を検索し、接続されているコンポーネントの指定した表にその情報を格納します。この情報が表に格納されていると、ネットワーク分析の多くの操作でパフォーマンスが向上します。

次の例では、SDO_PARTITIONEDネットワーク内のリンク・レベル1で接続されているコンポーネントを検索し、SDO_PARTITIONED_CONN_COMP_TAB表を作成または更新します。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるsdo_partitioned.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.FIND_CONNECTED_COMPONENTS(-
  network => 'SDO_PARTITIONED', -
  link_level => 1,-
  component_table_name => 'sdo_partitioned_conn_comp_tab',-
  log_loc => 'LOG_DIR', log_file=> 'sdo_partitioned.log',-
  open_mode => 'a');

6.37 SDO_NET.GENERATE_NODE_LEVELS

構文

SDO_NET.GENERATE_NODE_LEVELS(
     network               IN VARCHAR2,
     node_level_table_name IN VARCHAR2,
     overwrite             IN BOOLEAN DEFAULT FALSE,
     log_loc               IN VARCHAR2,
     log_file              IN VARCHAR2,
     open_mode             IN VARCHAR2 DEFAULT 'A');

説明

指定したマルチレベル・ネットワークのノード・レベルを生成し、その情報を表に格納します。

パラメータ

network

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

node_level_table_name

ノード・レベル情報を格納する表を指定します。この表には、(node_id NUMBER PRIMARY KEY, link_level NUMBER)という定義が必要です。

overwrite

node_level_table_nameで指定された表がすでに存在する場合の動作を制御し、TRUEを指定すると、その表の内容が新しいデータに置き換えられ、FALSE (デフォルト)を指定すると、エラーが生成されます。(node_level_table_nameで指定された表が存在しない場合、このパラメータは無視されます。)

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

使用上の注意

networkがマルチレベル・ネットワーク(複数のリンク・レベルを持つネットワーク)ではない場合、このプロシージャは処理を実行しません。

このプロシージャは、SDO_NET.GENERATE_PARTITION_BLOBSプロシージャによって内部的に使用されます。したがって、SDO_NET.GENERATE_PARTITION_BLOBSを実行済の場合は、このプロシージャを実行する必要はありません。ただし、次のケースでは、このプロシージャを明示的に実行する必要があります。

  • BLOBからではなく、ノード表またはリンク表からパーティションを読み取るようにJavaアプリケーションが構成されており、ネットワーク上にパーティションBLOBが生成されたことがない場合。

  • 上位レベルのノードがネットワークに対して追加または削除され、ノードとパーティションの関係が更新された場合。SDO_NET.GENERATE_PARTITION_BLOBを実行して、中に含まれるパーティションBLOBを再生成する前に、手動でノード・レベル表の更新またはこのプロシージャ(SDO_NET.GENERATE_NODE_LEVELS)の実行を行う必要があります。

ノード・レベル表の名前は、USER_SDO_NETWORK_METADATAビューのNODE_LEVEL_TABLE_NAME列(「xxx_SDO_NETWORK_METADATAビュー」を参照)に格納されます。

次の例では、MY_MULTILEVEL_NETネットワークのノード・レベル情報を生成して、その情報をMY_NET_NODE_LEVELS表に格納します。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_multilevel_net.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.GENERATE_NODE_LEVELS(-
  network => 'MY_MULTILEVEL_NET', -
  node_level_table_name => 'MY_NET_NODE_LEVELS',-
  overwrite => FALSE,-
  log_loc => 'LOG_DIR', log_file=> 'my_multilevel_net.log',-
  open_mode => 'a');

6.38 SDO_NET.GENERATE_PARTITION_BLOB

構文

SDO_NET.GENERATE_PARTITION_BLOB(
     network              IN VARCHAR2,
     link_level           IN NUMBER DEFAULT 1,
     partition_id         IN VARCHAR2,
     include_user_data    IN BOOLEAN,
     log_loc              IN VARCHAR2,
     log_file             IN VARCHAR2,
     open_mode            IN VARCHAR2 DEFAULT 'A',
     preform_delta_update IN BOOLEAN DEFAULT FALSE);

説明

ネットワーク内の指定のリンク・レベルに関連付けられた指定のパーティションに対して、1つのバイナリ・ラージ・オブジェクト(BLOB)表現を生成し、その情報を既存のパーティションBLOB表に格納します。

パラメータ

network

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

link_level

BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

partition_id

パーティションID番号を指定します。リンク・レベルとパーティションIDの指定した組合せに関連付けられたネットワーク要素は、生成されたBLOBに含まれています。

include_user_data

各BLOBで表現されるネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のユーザー・データについて、BLOBに含める場合はTRUE、BLOBに含めない場合はFALSEを指定します。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

perform_delta_update

(将来使用するために予約されています。唯一許可されている値はFALSEであり、これがデフォルトです。)

使用上の注意

このプロシージャは、1つの新しいBLOBを追加するか、またはパーティションBLOB表内の1つの既存のBLOBを置換します。パーティションBLOB表は、あらかじめSDO_NET.GENERATE_PARTITION_BLOBSプロシージャで作成しておく必要があります。

SDO_NET.GENERATE_PARTITION_BLOBSプロシージャを使用してすべてのパーティションのBLOBを更新するのとは対照的に、複数の大きなパーティションを含むネットワークにおいて、目的のパーティションのBLOBをより短時間で更新できることも、このプロシージャの用途の1つです。

次の例では、SDO_PARTITIONEDネットワークでパーティションIDが1、リンク・レベルが1にそれぞれ関連付けられたパーティションに対してパーティションBLOBを生成し、SDO_PARTITIONED_PART_BLOB_TAB表の適切なBLOBを追加または置換します。また、ネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のすべてのユーザー・データも格納します。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるsdo_partitioned.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.GENERATE_PARTITION_BLOB(-
  network => 'SDO_PARTITIONED', -
  link_level => 1,-
  partition_id => 1,-
  include_user_data => true,-
  log_loc => 'LOG_DIR', log_file=> 'sdo_partitioned.log',-
  open_mode => 'a');

6.39 SDO_NET.GENERATE_PARTITION_BLOBS

構文

SDO_NET.GENERATE_PARTITION_BLOBS(
     network                   IN VARCHAR2,
     link_level                IN NUMBER DEFAULT 1,
     partition_blob_table_name IN VARCHAR2,
     include_user_data         IN BOOLEAN,
     commit_for_each_blob      IN BOOLEAN DEFAULT TRUE,
     log_loc                   IN VARCHAR2,
     log_file                  IN VARCHAR2,
     open_mode                 IN VARCHAR2 DEFAULT 'A',
     perform_delta_update      IN BOOLEAN DEFAULT FALSE,
     regenerate_node_levels    IN BOOLEAN DEFAULT FALSE);

説明

ネットワーク内の指定のリンク・レベルに関連付けられたパーティションに対して、バイナリ・ラージ・オブジェクト(BLOB)表現を生成し、その情報をパーティションBLOB表に格納します。

パラメータ

network

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

link_level

各BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

partition_blob_table_name

このプロシージャで作成されるパーティションBLOB表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)パーティションBLOB表については、「パーティションBLOB表」を参照してください。

include_user_data

各BLOBで表現されるネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のユーザー・データについて、各BLOBに含める場合はTRUE、各BLOBに含めない場合はFALSEを指定します。

commit_for_each_blob

各パーティションBLOBが生成後にデータベースにコミットされる場合はTRUE (デフォルト)、コミットされない場合はFALSEを指定します(この場合、1つ以上の明示的なコミット操作を実行する必要があります)。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

perform_delta_update

(将来使用するために予約されています。唯一許可されている値はFALSEであり、これがデフォルトです。)

regenerate_node_levels

マルチレベル・ネットワークのノード・レベル表を再生成する場合はTRUEを、マルチレベル・ネットワークのノード・レベル表を再生成しない場合はFALSE (デフォルト)を指定します。ネットワークで上位レベル(第2レベルまたはそれ以上)のノードが追加または削除される場合、またはノードのレベルが変更される場合は、このパラメータをTRUEに設定する必要があります。ノードのレベルは、そのノードにつながる最大リンク・レベルとして定義されます。

使用上の注意

パーティションBLOBを生成すると、特に大規模なネットワークの場合には、ネットワーク分析の多くの操作でパフォーマンスが向上します。

ネットワークがパーティション化されていない場合、このプロシージャは、ネットワーク全体を表す1つのBLOBを生成します。

このプロシージャは、最初にマルチレベル・ネットワーク上で実行されるときに、SDO_NET.GENERATE_NODE_LEVELSを内部的にコールしてノード・レベル表(「ノード・レベル表(オプション)」を参照)を作成して移入します。その後、このプロシージャがマルチレベル・ネットワーク上でコールされるときは、regenerate_node_levelsパラメータを使用して、既存のノード・レベル表を上書きするかどうかを指定できます。

このプロシージャを、リンク・レベルとパーティションIDの指定した組合せに対して単一のBLOBを再生成し、既存のパーティションBLOB表に情報を追加するSDO_NET.GENERATE_PARTITION_BLOBと混同しないように注意してください。

次の例では、SDO_PARTITIONEDネットワーク内にリンク・レベル1のパーティションBLOBを生成し、SDO_PARTITIONED_PART_BLOB_TAB表を作成または更新します。また、ネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のすべてのユーザー・データも格納します。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるsdo_partitioned.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.GENERATE_PARTITION_BLOBS(-
  network => 'SDO_PARTITIONED', -
  link_level => 1,-
  partition_blob_table_name => 'sdo_partitioned_part_blob_tab',-
  include_user_data => true,-
  log_loc => 'LOG_DIR', log_file=> 'sdo_partitioned.log',-
  open_mode => 'a');

6.40 SDO_NET.GET_CHILD_FEATURE_IDS

構文

SDO_NET.GET_CHILD_FEATURE_IDS(
     feature_layer_id IN NUMBER,
     feature_id       IN NUMBER
) RETURN SDO_NET_LAYER_FEAT_ARRAY;

説明

指定したフィーチャのフィーチャ・レイヤーIDおよび子フィーチャIDを戻します。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

パラメータ

feature_layer_id

フィーチャ(親フィーチャ)のフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャのIDです。

使用上の注意

指定したフィーチャについて親フィーチャのフィーチャ・レイヤーIDおよびフィーチャIDを取得するには、SDO_NET.GET_PARENT_FEATURE_IDSファンクションを使用します。

親フィーチャおよび子フィーチャを含むフィーチャの詳細は、「フィーチャおよびフィーチャ・レイヤー」を参照してください。

次の例では、PARENT_LAYERフィーチャ・レイヤー内のフィーチャ1の子フィーチャIDを戻して表示します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  feature_ids SDO_NET_LAYER_FEAT_ARRAY;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'PARENT_LAYER');
  feature_ids := sdo_net.get_child_feature_ids(feature_layer_id, feature_id);
  FOR i in 1..feature_ids.count
  LOOP
    --dbms_output.put_line('['||i||']'||' FEATURE_LAYER_ID   = '||feature_ids(i).feature_layer_id);
    dbms_output.put_line('['||i||']'||' FEATURE_ID         = '||feature_ids(i).feature_id);
    dbms_output.put_line('---');
  END LOOP;
END;
/

6.41 SDO_NET.GET_CHILD_LINKS

構文

SDO_NET.GET_CHILD_LINKS(
     network IN VARCHAR2,
     link_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;

説明

リンクの子リンクを戻します。

パラメータ

network

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

link_id

子リンクを戻すリンクのIDを指定します。

使用上の注意

ネットワーク階層の親ノードと子ノード、および親リンクと子リンクの詳細は、「ネットワーク階層」を参照してください。

次の例では、XYZ_NETWORKネットワークに含まれる、リンクIDが1001のリンクの子リンクを戻します。

SELECT SDO_NET.GET_CHILD_LINKS('XYZ_NETWORK', 1001) FROM DUAL;
 
SDO_NET.GET_CHILD_LINKS('XYZ_NETWORK',1001)                                     
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(1108, 1109) 

6.42 SDO_NET.GET_CHILD_NODES

構文

SDO_NET.GET_CHILD_NODES(
     network IN VARCHAR2,
     node_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;

説明

ノードの子ノードを戻します。

パラメータ

network

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

node_id

子ノードを戻すノードのIDを指定します。

使用上の注意

ネットワーク階層の親ノードと子ノード、および親リンクと子リンクの詳細は、「ネットワーク階層」を参照してください。

次の例では、XYZ_NETWORKネットワークに含まれる、ノードIDが1のノードの子ノードを戻します。

SELECT SDO_NET.GET_CHILD_NODES('XYZ_NETWORK', 1) FROM DUAL;
 
SDO_NET.GET_CHILD_NODES('XYZ_NETWORK',1)                                        
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(101, 102, 103, 104, 105, 106)

6.43 SDO_NET.GET_DANGLING_FEATURES

構文

SDO_NET.GET_DANGLING_FEATURES(
     feature_layer_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;

説明

フィーチャ・レイヤー内のダングリング・フィーチャのIDを戻します。ダングリング・フィーチャとは、ネットワーク要素(ノードまたはリンク)に関連付けられていないフィーチャです。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

使用上の注意

フィーチャ・レイヤー内のダングリング・フィーチャを削除するには、SDO_NET.DELETE_DANGLING_FEATURESプロシージャを使用します。

次の例では、GRIDネットワーク内のPOIフィーチャ・レイヤーのダングリング・フィーチャを取得してから、そのフィーチャIDを表示します。

DECLARE
  feature_layer_id NUMBER;
  feature_ids SDO_NUMBER_ARRAY;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  feature_ids := sdo_net.get_dangling_features(feature_layer_id);
  dbms_output.put_line('Dangling Features:');
  for i in 1..feature_ids.count loop
    dbms_output.put_line('['||i||'] '||feature_ids(i));
  end loop;
END;
/

6.44 SDO_NET.GET_DANGLING_LINKS

構文

SDO_NET.GET_DANGLING_LINKS(
     network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;

説明

任意のフィーチャ・レイヤー内のいずれのフィーチャからも参照されていないリンクを戻します。

パラメータ

network

ネットワーク名です。

使用上の注意

ネットワーク内のダングリング・リンクを削除するには、SDO_NET.DELETE_DANGLING_LINKSプロシージャを使用します。

次の例では、GRIDネットワーク内のダングリング・リンクを取得してから、検出されたダングリング・リンクの数(合計)を表示します。

DECLARE
  link_ids SDO_NUMBER_ARRAY;
BEGIN
  link_ids := sdo_net.get_dangling_links('GRID');
  dbms_output.put_line('Number of dangling Links: '||link_ids.count);
END;
/

6.45 SDO_NET.GET_DANGLING_NODES

構文

SDO_NET.GET_DANGLING_NODES(
     network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;

説明

どのフィーチャ・レイヤー内のどのフィーチャによっても参照されていないノードを戻します。

パラメータ

network

ネットワーク名です。

使用上の注意

ネットワーク内のダングリング・ノードを削除するには、SDO_NET.DELETE_DANGLING_NODESプロシージャを使用します。

次の例では、GRIDネットワーク内のダングリング・ノードを取得してから、検出されたダングリング・ノードの数(合計)を表示します。

DECLARE
  node_ids SDO_NUMBER_ARRAY;
BEGIN
  node_ids := sdo_net.get_dangling_nodes('GRID');
  dbms_output.put_line('Number of dangling Nodes: '||node_ids.count);
END;
/

6.46 SDO_NET.GET_FEATURE_ELEMENTS

構文

SDO_NET.GET_FEATURE_ELEMENTS(
     feature_layer_id IN NUMBER,
     feature_id       IN NUMBER
) RETURN SDO_NET_FEAT_ELEM_ARRAY;

説明

フィーチャ・レイヤー内のフィーチャ要素を戻します。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

パラメータ

feature_layer_id

フィーチャのフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャのIDです。

使用上の注意

フィーチャ要素をフィーチャに追加するには、SDO_NET.ADD_FEATURE_ELEMENTプロシージャを使用し、1回の操作で複数のフィーチャ要素を追加するには、SDO_NET.ADD_FEATURE_ELEMENTSプロシージャを使用します。

次の例では、指定したフィーチャ・レイヤーのフィーチャ・レイヤーIDを取得してから、このフィーチャ・レイヤー内にあるフィーチャ1のフィーチャ要素に関する情報を取得して表示します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  elements SDO_NET_FEAT_ELEM_ARRAY;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  elements := sdo_net.get_feature_elements(feature_layer_id, feature_id);
  FOR i in 1..elements.count
  LOOP
    dbms_output.put_line('['||i||']'||' FEAT_ELEM_TYPE   = '||elements(i).feat_elem_type);
    dbms_output.put_line('['||i||']'||' NET_ELEM_ID      = '||elements(i).net_elem_id);
    dbms_output.put_line('['||i||']'||' START_PERCENTAGE = '||elements(i).start_percentage);
    dbms_output.put_line('['||i||']'||' END_PERCENTAGE   = '||elements(i).end_percentage);
    dbms_output.put_line('---');
  END LOOP;
END;
/

6.47 SDO_NET.GET_FEATURE_LAYER_ID

構文

SDO_NET.GET_FEATURE_LAYER_ID(
     network_name       IN VARCHAR2
     feature_layer_name IN VARCHAR2
) RETURN NUMBER;

説明

指定したフィーチャ・レイヤーのフィーチャ・レイヤーIDを戻します。

パラメータ

network_name

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

feature_layer_name

フィーチャ・レイヤーの名前を指定します。

使用上の注意

このファンクションは、USER_SDO_NETWORK_FEATUREビュー内の、指定されたネットワークとフィーチャ・レイヤーの組合せのFEATURE_LAYER_ID列の値を戻します(「xxx_SDO_NETWORK_FEATUREビュー」表5-36を参照)。

次の例では、指定したフィーチャ・レイヤーのフィーチャ・レイヤーIDを取得して表示します。

DECLARE
  feature_layer_id NUMBER;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  dbms_output.put_line('Feature layer ID for the POI feature layer is '||feature_layer_id);
END;
/

6.48 SDO_NET.GET_FEATURES_ON_LINKS

構文

SDO_NET.GET_FEATURES_ON_LINKS
     feature_layer_id IN NUMBER,
     link_ids         IN SDO_NUMBER_ARRAY
) RETURN SDO_NUMBER_ARRAY;

説明

指定したリンクを参照するフィーチャ・レイヤー内のフィーチャのIDを戻します。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

link_ids

フィーチャをチェックするリンクのIDを指定します。

使用上の注意

指定したノードを参照するフィーチャ・レイヤー内のフィーチャのIDを検出するには、SDO_NET.GET_FEATURES_ON_NODESプロシージャを使用します。

次の例では、指定したリンク上にあるフィーチャのフィーチャIDを取得して表示します。

DECLARE
  feature_layer_id NUMBER;
  link_ids SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY(1314);
  feature_ids SDO_NUMBER_ARRAY; 
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  feature_ids := sdo_net.get_features_on_links(feature_layer_id, link_ids);
  dbms_output.put_line('Features On Link '||link_ids(1)||':');
  for i in 1..feature_ids.count loop
    dbms_output.put_line('['||i||'] '||feature_ids(i));
  end loop;
END;
/

6.49 SDO_NET.GET_FEATURES_ON_NODES

構文

SDO_NET.GET_FEATURES_ON_NODES
     feature_layer_id IN NUMBER,
     node_ids         IN SDO_NUMBER_ARRAY
) RETURN SDO_NUMBER_ARRAY;

説明

指定したノードを参照するフィーチャ・レイヤー内のフィーチャのIDを戻します。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

node_ids

フィーチャをチェックするノードのIDを指定します。

使用上の注意

指定したリンクを参照するフィーチャ・レイヤー内のフィーチャのIDを検出するには、SDO_NET.GET_FEATURES_ON_LINKSプロシージャを使用します。

次の例では、指定したノード上にあるフィーチャのフィーチャIDを取得して表示します。

DECLARE
  feature_layer_id NUMBER;
  node_ids SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY(13);
  feature_ids SDO_NUMBER_ARRAY;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  feature_ids := sdo_net.get_features_on_nodes(feature_layer_id, node_ids);
  dbms_output.put_line('Features On Node '||node_ids(1)||':');
  for i in 1..feature_ids.count loop
    dbms_output.put_line('['||i||'] '||feature_ids(i));
  end loop;
END;
/

6.50 SDO_NET.GET_GEOMETRY_TYPE

構文

SDO_NET.GET_GEOMETRY_TYPE(
     network IN VARCHAR2
) RETURN VARCHAR2;

説明

空間ネットワークのジオメトリ・タイプを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのGEOMETRY_TYPE列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのジオメトリ・タイプを戻します。

SELECT SDO_NET.GET_GEOMETRY_TYPE('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_GEOMETRY_TYPE('ROADS_NETWORK')                                      
--------------------------------------------------------------------------------
LRS_GEOMETRY 

6.51 SDO_NET.GET_IN_LINKS

構文

SDO_NET.GET_IN_LINKS(
     network IN VARCHAR2,
     node_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;

説明

ノードへのインバウンド・リンクのリンクID番号の配列を戻します。

パラメータ

network

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

node_id

インバウンド・リンクの配列を戻すノードのIDを指定します。

使用上の注意

インバウンド・リンクおよび関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードへのインバウンド・リンクのリンクID番号の配列を戻します。

SELECT SDO_NET.GET_IN_LINKS('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_IN_LINKS('ROADS_NETWORK',3)                                         
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(102)

6.52 SDO_NET.GET_INVALID_LINKS

構文

SDO_NET.GET_INVALID_LINKS(
     network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;

説明

ネットワーク内の無効なリンクを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、指定されたネットワーク内の無効なリンクについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。無効なリンクが存在しない場合、このファンクションはNULL値を戻します。

次の例では、SDO_PARTITIONEDネットワーク内の無効なリンクを戻します。

SELECT SDO_NET.GET_INVALID_LINKS('SDO_PARTITIONED') FROM DUAL;

6.53 SDO_NET.GET_INVALID_NODES

構文

SDO_NET.GET_INVALID_NODES(
     network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;

説明

ネットワーク内の無効なノードを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、指定されたネットワーク内の無効なノードについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。無効なノードが存在しない場合、このファンクションはNULL値を戻します。

次の例では、SDO_PARTITIONEDネットワーク内の無効なノードを戻します。

SELECT SDO_NET.GET_INVALID_NODES('SDO_PARTITIONED') FROM DUAL;

6.54 SDO_NET.GET_INVALID_PATHS

構文

SDO_NET.GET_INVALID_PATHS(
     network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;

説明

ネットワーク内の無効なパスを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、指定されたネットワーク内の無効なパスについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。無効なパスが存在しない場合、このファンクションはNULL値を戻します。

次の例では、SDO_PARTITIONEDネットワーク内の無効なパスを戻します。

SELECT SDO_NET.GET_INVALID_PATHS('SDO_PARTITIONED') FROM DUAL;

6.55 SDO_NET.GET_ISOLATED_NODES

構文

SDO_NET.GET_ISOLATED_NODES( 
     network  IN VARCHAR2      
) RETURN SDO_NUMBER_ARRAY;

説明

ネットワーク内の孤立ノードを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、指定されたネットワーク内の孤立ノードについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。孤立ノードが存在しない場合、このファンクションはNULL値を戻します。

ネットワーク内の孤立ノードの簡単な説明は、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、SDO_PARTITIONEDネットワーク内の孤立ノードを戻します。

SELECT SDO_NET.GET_ISOLATED_NODES('SDO_PARTITIONED') FROM DUAL;

6.56 SDO_NET.GET_LINK_COST_COLUMN

構文

SDO_NET.GET_LINK_COST_COLUMN(      
     network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークのリンク・コスト列の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_COST_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのリンク・コスト列の名前を戻します。

SELECT SDO_NET.GET_LINK_COST_COLUMN('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_LINK_COST_COLUMN('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
COST

6.57 SDO_NET.GET_LINK_DIRECTION

構文

SDO_NET.GET_LINK_DIRECTION(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークのリンクの方向を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_DIRECTION列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのリンクの方向を戻します。

SELECT SDO_NET.GET_LINK_DIRECTION('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_LINK_DIRECTION('ROADS_NETWORK')                                     
--------------------------------------------------------------------------------
DIRECTED 

6.58 SDO_NET.GET_LINK_GEOM_COLUMN

構文

SDO_NET.GET_LINK_GEOM_COLUMN(    
  network  IN VARCHAR2     
) RETURN VARCHAR2;

説明

空間ネットワークのリンク・ジオメトリ列の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのリンク・ジオメトリ列の名前を戻します。

SELECT SDO_NET.GET_LINK_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_LINK_GEOM_COLUMN('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
LINK_GEOMETRY

6.59 SDO_NET.GET_LINK_GEOMETRY

構文

SDO_NET.GET_LINK_GEOMETRY(      
  network          IN VARCHAR2,      
  link_id          IN NUMBER,      
  start_percentage IN NUMBER DEFAULT 0,      
  end_percentage   IN NUMBER DEFAULT 1.0      
) RETURN SDO_GEOMETRY;

説明

空間ネットワーク内のリンクに関連付けられたジオメトリ全体またはジオメトリの一部を戻します。

パラメータ

network

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

link_id

ジオメトリを戻すリンクのID番号を指定します。

start_percentage

戻されたジオメトリの開始点に使用されるリンクに沿った距離の割合を指定します。0から1.0までの数字として表します(たとえば、0.5は50パーセントです)。デフォルト値は0です(つまり、戻されたジオメトリの開始はリンクの開始点に関連付けられています)。

end_percentage

戻されたジオメトリの終了点に使用されるリンクに沿った距離の割合を指定します。0から1.0までの数字として表します(たとえば、0.5は50パーセントです)。デフォルト値は1.0です(つまり、戻されたジオメトリの終了はリンクの終了点に関連付けられています)。

使用上の注意

なし。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、リンクIDが103のリンクに関連付けられたジオメトリを戻します。

SELECT SDO_NET.GET_LINK_GEOMETRY('ROADS_NETWORK', 103) FROM DUAL;
 
SDO_NET.GET_LINK_GEOMETRY('ROADS_NETWORK',103)(SDO_GTYPE, SDO_SRID, SDO_POINT(X,
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
8, 4, 12, 4)) 

6.60 SDO_NET.GET_LINK_TABLE_NAME

構文

SDO_NET.GET_LINK_TABLE_NAME(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークのリンク表の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのリンク表の名前を戻します。

SELECT SDO_NET.GET_LINK_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_LINK_TABLE_NAME('ROADS_NETWORK')                                    
--------------------------------------------------------------------------------
ROADS_LINKS  

6.61 SDO_NET.GET_LINKS_IN_PATH

構文

SDO_NET.GET_LINKS_IN_PATH(      
  network  IN VARCHAR2,     
  path_id  IN NUMBER      
) RETURN SDO_NUMBER_ARRAY;

説明

パスに含まれるリンクを戻します。

パラメータ

network

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

path_id

リンクを戻すパスのIDを指定します。

使用上の注意

リンクおよびパスの説明は、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、XYZ_NETWORKネットワーク内のパスに含まれる、パスIDが1のリンクのリンクID値を戻します。

SELECT SDO_NET.GET_LINKS_IN_PATH('XYZ_NETWORK', 1) FROM DUAL;
 
SDO_NET.GET_LINKS_IN_PATH('XYZ_NETWORK',1)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(1102, 1104, 1105)

6.62 SDO_NET.GET_LRS_GEOM_COLUMN

構文

SDO_NET.GET_LRS_GEOM_COLUMN(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

空間ネットワークのLRSジオメトリ列の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLRS_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのLRSジオメトリ列の名前を戻します。

SELECT SDO_NET.GET_LRS_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_LRS_GEOM_COLUMN('ROADS_NETWORK')                                    
--------------------------------------------------------------------------------
ROAD_GEOM 

6.63 SDO_NET.GET_LRS_LINK_GEOMETRY

構文

SDO_NET.GET_LRS_LINK_GEOMETRY( 
  network  IN VARCHAR2,      
  link_id  IN NUMBER      
) RETURN SDO_GEOMETRY;

説明

空間LRSネットワーク内のリンクに関連付けられたLRSジオメトリを戻します。

パラメータ

network

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

link_id

ジオメトリを戻すリンクのID番号を指定します。

使用上の注意

なし。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、リンクIDが103のリンクに関連付けられたLRSジオメトリを戻します。

SELECT SDO_NET.GET_LRS_LINK_GEOMETRY('ROADS_NETWORK', 103) FROM DUAL;
 
SDO_NET.GET_LRS_LINK_GEOMETRY('ROADS_NETWORK',103)(SDO_GTYPE, SDO_SRID, SDO_POIN
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
8, 4, 12, 4))

6.64 SDO_NET.GET_LRS_NODE_GEOMETRY

構文

SDO_NET.GET_LRS_NODE_GEOMETRY(     
  network IN VARCHAR2,      
  node_id IN NUMBER      
) RETURN SDO_GEOMETRY;

説明

空間LRSネットワーク内のノードに関連付けられたLRSジオメトリを戻します。

パラメータ

network

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

node_id

ジオメトリを戻すノードのID番号を指定します。

使用上の注意

なし。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードに関連付けられたLRSジオメトリを戻します。

SELECT SDO_NET.GET_LRS_NODE_GEOMETRY('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_LRS_NODE_GEOMETRY('ROADS_NETWORK',3)(SDO_GTYPE, SDO_SRID, SDO_POINT(
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(8, 4, NULL), NULL, NULL)

6.65 SDO_NET.GET_LRS_TABLE_NAME

構文

SDO_NET.GET_LRS_TABLE_NAME(      
  network  IN VARCHAR2     
) RETURN VARCHAR2;

説明

空間LRSネットワーク内のLRSジオメトリを含む表の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLRS_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワーク内のLRSジオメトリを含む表の名前を戻します。

SELECT SDO_NET.GET_LRS_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_LRS_TABLE_NAME('ROADS_NETWORK')                                     
--------------------------------------------------------------------------------
ROADS 

6.66 SDO_NET.GET_NETWORK_TYPE

構文

SDO_NET.GET_NETWORK_TYPE(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワーク・タイプを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNETWORK_TYPE列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワークのネットワーク・タイプを戻します。

SELECT SDO_NET.GET_NETWORK_TYPE('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_NETWORK_TYPE('ROADS_NETWORK')                                       
--------------------------------------------------------------------------------
Roadways

6.67 SDO_NET.GET_NO_OF_HIERARCHY_LEVELS

構文

SDO_NET.GET_NO_OF_HIERARCHY_LEVELS(      
  network  IN VARCHAR2      
) RETURN NUMBER;

説明

ネットワークの階層レベルの数を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNO_OF_HIERARCHY_LEVELS列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

ネットワーク階層については、「ネットワーク階層」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークの階層レベルの数を戻します。

SELECT SDO_NET.GET_NO_OF_HIERARCHY_LEVELS('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_NO_OF_HIERARCHY_LEVELS('ROADS_NETWORK')                             
---------------------------------------------------                             
                                                  1

6.68 SDO_NET.GET_NO_OF_LINKS

構文

SDO_NET.GET_NO_OF_LINKS(      
  network  IN VARCHAR2      
) RETURN NUMBER;

または

SDO_NET.GET_NO_OF_LINKS(      
  network       IN VARCHAR2,      
  hierarchy_id  IN NUMBER      
) RETURN NUMBER;

説明

ネットワーク内のリンク数またはネットワーク内の任意の階層レベルでのリンク数を戻します。

パラメータ

network

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

hierarchy_id

リンク数を戻す階層レベルの番号を指定します。

使用上の注意

なし。

次の例では、ROADS_NETWORKという名前のネットワーク内のリンク数を戻します。

SELECT SDO_NET.GET_NO_OF_LINKS('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_NO_OF_LINKS('ROADS_NETWORK')                                        
----------------------------------------                                        
                                      10 

6.69 SDO_NET.GET_NO_OF_NODES

構文

SDO_NET.GET_NO_OF_NODES(      
  network  IN VARCHAR2      
) RETURN NUMBER;

または

SDO_NET.GET_NO_OF_NODES(      
  network       IN VARCHAR2,      
  hierarchy_id  IN NUMBER      
) RETURN NUMBER;

説明

ネットワーク内のノード数またはネットワーク内の任意の階層レベルでのノード数を戻します。

パラメータ

network

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

hierarchy_id

ノード数を戻す階層レベルの番号を指定します。

使用上の注意

ノードおよび関連する概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワーク内のノード数を戻します。

SELECT SDO_NET.GET_NO_OF_NODES('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_NO_OF_NODES('ROADS_NETWORK')                                        
----------------------------------------                                        
                                       8

6.70 SDO_NET.GET_NODE_DEGREE

構文

SDO_NET.GET_NODE_DEGREE(      
  network  IN VARCHAR2,      
  node_id  IN NUMBER      
) RETURN NUMBER;

説明

ノードへのリンク数を戻します。

パラメータ

network

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

node_id

リンク数を戻すノードのノードIDを指定します。

使用上の注意

ノードの度数および関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードへのリンク数を戻します。

SELECT SDO_NET.GET_NODE_DEGREE('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_NODE_DEGREE('ROADS_NETWORK',3)                                      
------------------------------------------                                      
                                         3

6.71 SDO_NET.GET_NODE_GEOM_COLUMN

構文

SDO_NET.GET_NODE_GEOM_COLUMN(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

空間ネットワーク内のノードのジオメトリ列の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNODE_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワーク内のノードのジオメトリ列の名前を戻します。

SELECT SDO_NET.GET_NODE_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_NODE_GEOM_COLUMN('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
NODE_GEOMETRY

6.72 SDO_NET.GET_NODE_GEOMETRY

構文

SDO_NET.GET_NODE_GEOMETRY(      
  network  IN VARCHAR2,      
  node_id  IN NUMBER      
) RETURN SDO_GEOMETRY;

説明

空間ネットワーク内のノードに関連付けられたLRSジオメトリを戻します。

パラメータ

network

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

node_id

ジオメトリを戻すノードのID番号を指定します。

使用上の注意

なし。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードに関連付けられたジオメトリを戻します。

SELECT SDO_NET.GET_NODE_GEOMETRY('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_NODE_GEOMETRY('ROADS_NETWORK',3)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(8, 4, NULL), NULL, NULL) 

6.73 SDO_NET.GET_NODE_IN_DEGREE

構文

SDO_NET.GET_NODE_IN_DEGREE(      
  network  IN VARCHAR2,      
  node_id  IN NUMBER      
) RETURN NUMBER;

説明

ノードへのインバウンド・リンク数を戻します。

パラメータ

network

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

node_id

インバウンド・リンク数を戻すノードのノードIDを指定します。

使用上の注意

ノードの度数および関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードへのインバウンド・リンク数を戻します。

SELECT SDO_NET.GET_NODE_IN_DEGREE('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_NODE_IN_DEGREE('ROADS_NETWORK',3)                                   
---------------------------------------------                                   
                                            1

6.74 SDO_NET.GET_NODE_OUT_DEGREE

構文

SDO_NET.GET_NODE_OUT_DEGREE(      
  network  IN VARCHAR2,      
  node_id  IN NUMBER      
) RETURN NUMBER;

説明

ノードからのアウトバウンド・リンク数を戻します。

パラメータ

network

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

node_id

アウトバウンド・リンク数を戻すノードのノードIDを指定します。

使用上の注意

ノードの度数および関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードからのアウトバウンド・リンク数を戻します。

SELECT SDO_NET.GET_NODE_OUT_DEGREE('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_NODE_OUT_DEGREE('ROADS_NETWORK',3)                                  
----------------------------------------------                                  
                                             2

6.75 SDO_NET.GET_NODE_TABLE_NAME

構文

SDO_NET.GET_NODE_TABLE_NAME(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

空間ネットワーク内のノードを含む表の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNODE_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワーク内のノードを含む表の名前を戻します。

SELECT SDO_NET.GET_NODE_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_NODE_TABLE_NAME('ROADS_NETWORK')                                    
--------------------------------------------------------------------------------
ROADS_NODES

6.76 SDO_NET.GET_OUT_LINKS

構文

SDO_NET.GET_OUT_LINKS(      
  network  IN VARCHAR2,      
  node_id  IN NUMBER      
) RETURN SDO_NUMBER_ARRAY;

説明

ノードからのアウトバウンド・リンクのリンクID番号の配列を戻します。

パラメータ

network

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

node_id

アウトバウンド・リンクの配列を戻すノードのIDを指定します。

使用上の注意

アウトバウンド・リンクおよび関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードからのアウトバウンド・リンクのリンクID番号の配列を戻します。

SELECT SDO_NET.GET_OUT_LINKS('ROADS_NETWORK', 3) FROM DUAL;
 
SDO_NET.GET_OUT_LINKS('ROADS_NETWORK',3)                                        
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(103, 201)

6.77 SDO_NET.GET_PARENT_FEATURE_IDS

構文

SDO_NET.GET_PARENT_FEATURE_IDS(      
  feature_layer_id  IN NUMBER,      
  feature_id        IN NUMBER      
) RETURN SDO_NET_LAYER_FEAT_ARRAY;

説明

指定したフィーチャのフィーチャ・レイヤーIDおよび親フィーチャIDを戻します。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

パラメータ

feature_layer_id

フィーチャ(子フィーチャ)のフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャのIDです。

使用上の注意

指定したフィーチャについて子フィーチャのフィーチャ・レイヤーIDおよびフィーチャIDを取得するには、SDO_NET.GET_CHILD_FEATURE_IDSファンクションを使用します。

親フィーチャおよび子フィーチャを含むフィーチャの詳細は、「フィーチャおよびフィーチャ・レイヤー」を参照してください。

次の例では、POIフィーチャ・レイヤー内のフィーチャ1の親フィーチャIDを戻して表示します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  feature_ids SDO_NET_LAYER_FEAT_ARRAY;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  feature_ids := sdo_net.get_parent_feature_ids(feature_layer_id, feature_id);
  FOR i in 1..feature_ids.count
  LOOP
    --dbms_output.put_line('['||i||']'||' FEATURE_LAYER_ID   = '||feature_ids(i).feature_layer_id);
    dbms_output.put_line('['||i||']'||' FEATURE_ID         = '||feature_ids(i).feature_id);
    dbms_output.put_line('---');
  END LOOP;
END;
/

6.78 SDO_NET.GET_PARTITION_SIZE

構文

SDO_NET.GET_PARTITION_SIZE(      
  network              IN VARCHAR2,      
  partition_id         IN VARCHAR2,      
  link_level           IN NUMBER DEFAULT 1,      
  include_user_data    IN VARCHAR2 DEFAULT 'FALSE',      
  include_spatial_data IN VARCHAR2 DEFAULT 'FALSE'
) RETURN NUMBER;

説明

パーティションIDとリンク・レベルの指定した組合せの推定サイズ(バイト単位)を取得します。

パラメータ

network

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

partition_id

パーティションID番号を指定します。

link_level

リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

include_user_data

各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、サイズに含める場合はTRUE、サイズに含めない場合はFALSE (デフォルト)を指定します。

include_spatial_data

各BLOBで表現されるネットワーク要素に関連付けられた空間ジオメトリの定義について、サイズに含める場合はTRUE、サイズに含めない場合はFALSE (デフォルト)を指定します。

使用上の注意

戻されるネットワーク・パーティションのサイズは、おおまかな推定であり、Java仮想マシンおよびガベージ・コレクションによって変動する場合があります。

ロード・オンデマンド方式を使用した分析を実行するための、パーティション化されたネットワークの使用方法については、「ロード・オンデマンドを使用したネットワーク分析」を参照してください。

次の例では、SDO_PARTITIONEDネットワーク内でパーティションIDが1、リンク・レベルが1にそれぞれ関連付けられたパーティションのバイト数を戻します。ユーザー・データおよび空間データは含まれません。

SELECT SDO_NET.GET_PARTITION_SIZE('SDO_PARTITIONED', 1, 1, 'N', 'N') FROM DUAL;
 
SDO_NET.GET_PARTITION_SIZE('SDO_PARTITIONED',1,1,'FALSE','FALSE')
---------------------------------------------------------
                                                     5192

6.79 SDO_NET.GET_PATH_GEOM_COLUMN

構文

SDO_NET.GET_PATH_GEOM_COLUMN(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

空間ネットワーク内のパスのジオメトリ列の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのPATH_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワーク内のパスのジオメトリ列の名前を戻します。

SELECT SDO_NET.GET_PATH_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_PATH_GEOM_COLUMN('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
PATH_GEOMETRY

6.80 SDO_NET.GET_PATH_TABLE_NAME

構文

SDO_NET.GET_PATH_TABLE_NAME(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

空間ネットワーク内のパスを含む表の名前を戻します。

パラメータ

network

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

使用上の注意

このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのPATH_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」表5-33を参照)。

次の例では、ROADS_NETWORKという名前のネットワーク内のパスを含む表の名前を戻します。

SELECT SDO_NET.GET_PATH_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.GET_PATH_TABLE_NAME('ROADS_NETWORK')                                    
--------------------------------------------------------------------------------
ROADS_PATHS 

6.81 SDO_NET.GET_PERCENTAGE

構文

SDO_NET.GET_PERCENTAGE(      
  network  IN VARCHAR2,      
  link_id  IN NUMBER,      
  pt_geom  IN SDO_GEOMETRY      
) RETURN SDO_GEOMETRY;

説明

点ジオメトリの、リンクの線ストリング・ジオメトリに沿った距離の割合を戻します。

パラメータ

network

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

link_id

リンクのID番号を指定します。

pt_geom

点ジオメトリを指定します。

使用上の注意

このファンクションは、0から1までの値を戻します。たとえば、点が、リンクの開始ノードと終了ノード間の距離の25パーセント(4分の1)の位置に存在する場合、このファンクションは.25を戻します。

pt_geomがリンク・ジオメトリ上にない場合は、リンク・ジオメトリ上でpt_geomに最も近い点が使用されます。

リンクの線ストリング・ジオメトリに沿った、指定された割合の距離に存在する点ジオメトリを検出するには、SDO_NET.GET_PTファンクションを使用します。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、リンクIDが101のリンクに関連付けられたジオメトリに沿った、指定された点の距離の割合(小数)を戻します。

SQL> SELECT SDO_NET.GET_PERCENTAGE('ROADS_NETWORK', 101,
  SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(2, 2.5, NULL), NULL, NULL))
  FROM DUAL;  2    3
 
SDO_NET.GET_PERCENTAGE('ROADS_NETWORK',101,SDO_GEOMETRY(2001,NULL,SDO_POINT_TYPE
--------------------------------------------------------------------------------
                                                                             .25

6.82 SDO_NET.GET_PHANTOM_FEATURES

構文

SDO_NET.GET_PHANTOM_FEATURES(      
  feature_layer_id  IN NUMBER      
) RETURN SDO_NUMBER_ARRAY;

説明

フィーチャ・レイヤー内のファントム・フィーチャのIDを戻します。ファントム・フィーチャとは、存在しないネットワーク要素(ノードまたはリンク)を参照するフィーチャです。

パラメータ

feature_layer_id

フィーチャを含むフィーチャ・レイヤーのIDを指定します。

使用上の注意

フィーチャ・レイヤー内のファントム・フィーチャを削除するには、SDO_NET.DELETE_PHANTOM_FEATURESプロシージャを使用します。

次の例では、指定したフィーチャ・レイヤー内のファントム・フィーチャのフィーチャIDを取得して表示します。

DECLARE
  feature_layer_id NUMBER;
  feature_ids SDO_NUMBER_ARRAY;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  feature_ids := sdo_net.get_phantom_features(feature_layer_id);
  dbms_output.put_line('Phantom Features:');
  for i in 1..feature_ids.count loop
    dbms_output.put_line('['||i||'] '||feature_ids(i));
  end loop;
END;
/

6.83 SDO_NET.GET_PT

構文

SDO_NET.GET_PT(      
  network     IN VARCHAR2,      
  link_id     IN NUMBER,      
  percentage  IN NUMBER      
) RETURN SDO_GEOMETRY;

説明

リンクの線ストリング・ジオメトリに沿った、指定された割合の距離に存在する点ジオメトリを戻します。

パラメータ

network

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

link_id

指定されたpercentageの距離に存在する点ジオメトリを戻すリンクのID番号を指定します。

percentage

割合の値を0から1までの小数として指定します。たとえば、0.25は25パーセントです。

使用上の注意

指定した点に対するリンク・ジオメトリに沿った割合を検出するには、SDO_NET.GET_PERCENTAGEファンクションを使用します。

次の例では、ROADS_NETWORKという名前のネットワークに含まれる、リンクIDが101のリンクに関連付けられたジオメトリに沿った、開始ノードから25パーセントの距離に存在する点ジオメトリを戻します。

SELECT SDO_NET.GET_PT('ROADS_NETWORK', 101, 0.25) FROM DUAL;
 
SDO_NET.GET_PT('ROADS_NETWORK',101,0.25)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z)
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(2, 2.5, NULL), NULL, NULL)

6.84 SDO_NET.IS_HIERARCHICAL

構文

SDO_NET.IS_HIERARCHICAL(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークに複数の階層レベルが存在する場合、文字列TRUEを戻します。ネットワークに複数の階層レベルが存在しない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

ネットワーク階層については、「ネットワーク階層」を参照してください。

次の例では、ROADS_NETWORKという名前のネットワークに複数の階層レベルが存在するかどうかを確認します。

SELECT SDO_NET.IS_HIERARCHICAL('ROADS_NETWORK') FROM DUAL;

SDO_NET.IS_HIERARCHICAL('ROADS_NETWORK')                                        
--------------------------------------------------------------------------------
TRUE   

6.85 SDO_NET.IS_LINK_IN_PATH

構文

SDO_NET.IS_LINK_IN_PATH(      
  network  IN VARCHAR2,      
  path_id  IN NUMBER,      
  link_id  IN NUMBER,      
) RETURN VARCHAR2;

説明

指定されたリンクが指定されたパスに含まれている場合、文字列TRUEを戻します。指定されたリンクが指定されたパスに含まれていない場合は、文字列FALSEを戻します。

パラメータ

network

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

path_id

パスのID番号を指定します。

link_id

リンクのID番号を指定します。

使用上の注意

このファンクションは、特定のリンクが特定のパスに含まれているかどうかを確認するために使用します。

次の例では、リンクIDが1のリンクが、SDO_NET1という名前のネットワーク内でパスIDが1のパスに含まれているかどうかを確認します。

SELECT SDO_NET.IS_LINK_IN_PATH('SDO_NET1', 1, 1) FROM DUAL;
 
SDO_NET.IS_LINK_IN_PATH('SDO_NET1',1,1)                                        
--------------------------------------------------------------------------------
TRUE

6.86 SDO_NET.IS_LOGICAL

構文

SDO_NET.IS_LOGICAL(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークが論理ネットワークである場合、文字列TRUEを戻します。ネットワークが論理ネットワークではない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(「ネットワーク・データ・モデル・グラフの概念」を参照)。

次の例では、ROADS_NETWORKという名前のネットワークが論理ネットワークであるかどうかを確認します。

SELECT SDO_NET.IS_LOGICAL('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.IS_LOGICAL('ROADS_NETWORK')                                             
--------------------------------------------------------------------------------
FALSE 

6.87 SDO_NET.IS_NODE_IN_PATH

構文

SDO_NET.IS_NODE_IN_PATH(      
  network  IN VARCHAR2,      
  path_id  IN NUMBER,      
  node_id  IN NUMBER,      
) RETURN VARCHAR2;

説明

指定されたノードが指定されたパスに含まれている場合、文字列TRUEを戻します。指定されたノードが指定されたパスに含まれていない場合は、文字列FALSEを戻します。

パラメータ

network

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

path_id

パスのID番号を指定します。

node_id

ノードのID番号を指定します。

使用上の注意

このファンクションは、特定のノードが特定のパスに含まれているかどうかを確認するために使用します。

次の例では、ノードIDが1のノードが、SDO_NET1という名前のネットワーク内でパスIDが1のパスに含まれているかどうかを確認します。

SELECT SDO_NET.IS_NODE_IN_PATH('SDO_NET1', 1, 1) FROM DUAL;
 
SDO_NET.IS_NODE_IN_PATH('SDO_NET1',1,1)                                        
--------------------------------------------------------------------------------
TRUE

6.88 SDO_NET.IS_SPATIAL

構文

SDO_NET.IS_SPATIAL(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークが空間ネットワークである場合、文字列TRUEを戻します。ネットワークが空間ネットワークではない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(「ネットワーク・データ・モデル・グラフの概念」を参照)。

空間ネットワークの場合は、さらにSDO_NET.LRS_GEOMETRY_NETWORKSDO_NET.SDO_GEOMETRY_NETWORKおよびSDO_NET.TOPO_GEOMETRY_NETWORKファンクションを使用して、そのジオメトリ・タイプを確認できます。

次の例では、ROADS_NETWORKという名前のネットワークが空間ネットワークであるかどうかを確認します。

SELECT SDO_NET.IS_SPATIAL('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.IS_SPATIAL('ROADS_NETWORK')                                             
--------------------------------------------------------------------------------
TRUE

6.89 SDO_NET.LOAD_CONFIG

構文

SDO_NET.LOAD_CONFIG(     
  file_directory  IN VARCHAR2,     
  file_name       IN VARCHAR2);

説明

ロード・オンデマンドのJavaストアド・プロシージャの構成を、指定したXMLファイルからロードまたはリロードします。ロード・オンデマンド構成は、主にパーティションBLOBの変換およびパーティション・キャッシュの構成に使用されます。(Javaストアド・プロシージャは、パッケージoracle.spatial.network.lodのクラスです。)

パラメータ

file_directory

XMLファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

file_name

ロードする情報を含むXMLファイルの名前を指定します。

使用上の注意

デフォルトでは、ロード・オンデマンド用に構成されています。このプロシージャは、デフォルトの構成を変更する必要がある場合に使用します。

パーティション・キャッシュを含むロード・オンデマンド環境の構成については、「パーティション・キャッシュの構成」を参照してください。

次の例では、指定したXMLファイルからロード・オンデマンド構成をロードします。

EXECUTE SDO_NET.LOAD_CONFIG('WORK_DIR', 'netlodcfg.xml');

6.90 SDO_NET.LOGICAL_PARTITION

構文

SDO_NET.LOGICAL_PARTITION(      
  network              IN VARCHAR2,      
  partition_table_name IN VARCHAR2,      
  max_num_nodes        IN NUMBER,      
  log_loc              IN VARCHAR2,      
  log_file             IN VARCHAR2,      
  open_mode            IN VARCHAR2 DEFAULT 'A',      
  link_level           IN NUMBER DEFAULT 1);

または

SDO_NET.LOGICAL_PARTITION(      
  network              IN VARCHAR2,      
  partition_table_name IN VARCHAR2,      
  max_num_nodes        IN NUMBER,      
  log_loc              IN VARCHAR2,      
  log_file             IN VARCHAR2,      
  open_mode            IN VARCHAR2 DEFAULT 'A',      
  link_level           IN NUMBER DEFAULT 1,      
  part_size_tolerance  IN NUMBER);

説明

論理ネットワークをパーティション化し、情報をパーティション表に格納します。

注意:

論理ネットワークがべき乗則(スケールフリー)ネットワークである場合は、このプロシージャを使用してネットワークをパーティション化せずに、かわりにSDO_NET.LOGICAL_POWERLAW_PARTITIONプロシージャを使用します。

パラメータ

network

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

partition_table_name

このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。

max_num_nodes

各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

link_level

パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

part_size_tolerance

パーティション・サイズの許可された許容差(max_num_nodesの小数として表される)を指定します。0から1の範囲である必要があります。このパラメータを使用すると、パーティション化を行うプロシージャで、max_num_nodesにより指定されたサイズより大きなサイズのパーティションを作成できますので、相互接続性の低いパーティションを柔軟に生成することが可能です。たとえば、max_num_nodesが5000で、part_size_toleranceが0.1である場合、パーティションには最大5500個(0.1*5000は500であるため、5000 + 500で算出)のノードを含めることができます。

使用上の注意

part_size_toleranceパラメータを使用すると、エッジカットを小さく維持しながらパーティション間の相互接続性を減らすことに重点を置いて、論理ネットワークをパーティション化できます。

このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるためにSDO_NET.GENERATE_PARTITION_BLOBSプロシージャの使用を検討してください。

次の例では、MY_LOGICAL_NETネットワーク内にリンク・レベル1のパーティションを作成して、MY_LOGICAL_PART_TAB表を作成します。各パーティションに配置するノードの最大数は5000です。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_logical_part.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.LOGICAL_PARTITION(network => 'MY_LOGICAL_NET', -
  partition_table_name => 'my_logical_part_tab',-
  max_num_nodes => 5000,-
  log_loc => 'LOG_DIR', log_file=> 'my_logical_part.log',-
  link_level => 1, open_mode => 'a');

次の例では、MY_LOGICAL_NETネットワーク内にリンク・レベル1のパーティションを作成して、MY_LOGICAL_PART_TAB表を作成します。max_num_nodesの値とpart_size_toleranceの値の組合せ(5000 + 0.1*5000 = 5500)になるので、各パーティションに配置されるノードの最大数は5500です。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_logical_part.logファイルに書き込まれ(open_mode => 'w')、その場所にこの名前を持つ既存のファイルがある場合には置換します。

EXECUTE SDO_NET.LOGICAL_PARTITION(network => 'MY_LOGICAL_NET', -
  partition_table_name => 'my_logical_part_tab',-
  max_num_nodes => 5000,-
  log_loc => 'LOG_DIR', log_file=> 'my_logical_part.log',-
  link_level => 1, open_mode => 'w',
  part_size_tolerance => 0.1);

6.91 SDO_NET.LOGICAL_POWERLAW_PARTITION

構文

SDO_NET.LOGICAL_POWERLAW_PARTITION(      
  network              IN VARCHAR2,      
  partition_table_name IN VARCHAR2,      
  max_num_nodes        IN NUMBER,      
  log_loc              IN VARCHAR2,      
  log_file             IN VARCHAR2,      
  open_mode            IN VARCHAR2 DEFAULT 'A',      
  link_level           IN NUMBER DEFAULT 1,      
  part_size_tolerance  IN NUMBER DEFAULT 0);

説明

べき乗則(スケールフリーとも呼ばれる)の論理ネットワークをパーティション化し、情報をパーティション表に格納します。(べき乗則ネットワークでは、ノードの度数の値に、べき乗則情報が含まれます。)

パラメータ

network

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

partition_table_name

このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。

max_num_nodes

各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。

part_size_tolerance値が0より大きい場合は、各パーティションに含まれるノードの最大数が増えます(このパラメータの説明を参照)。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、べき乗則の論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

link_level

パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

part_size_tolerance

パーティション・サイズの許可された許容差(max_num_nodesの割合として表される)を指定します。0 (デフォルト)から100の範囲である必要があります。

part_size_tolerance値が0より大きい場合は、事実上、max_num_nodes値が高くなります。たとえば、max_num_nodesが5000で、part_size_toleranceを10として指定した場合、各パーティションに含まれるノードの実際の最大数は5500(5000の10パーセントは500であるため、5000 + 500で算出)です。part_size_toleranceを使用するかどうかの決定および指定する値の決定を行う場合は、キャッシュ・サイズと、関連するノードが異なるパーティションに配置される確率を考慮してください。

使用上の注意

このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるためにSDO_NET.GENERATE_PARTITION_BLOBSプロシージャの使用を検討してください。

論理ネットワークがべき乗則ネットワークではない場合は、このプロシージャを使用せずに、かわりにSDO_NET.LOGICAL_PARTITIONプロシージャを使用します。

次の例では、MY_LOGICAL_PLAW_NETネットワーク内にリンク・レベル1のパーティションを作成して、MY_LOGICAL_PLAW_PART_TAB表を作成します。各パーティションに配置するノードの最大数は5000です。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_logical_plaw_part.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.LOGICAL_POWERLAW_PARTITION(network => 'MY_LOGICAL_PLAW_NET', -
  partition_table_name => 'my_logical_plaw_part_tab',-
  max_num_nodes => 5000,-
  log_loc => 'LOG_DIR', log_file=> 'my_logical_plaw_part.log',-
  link_level => 1, open_mode => 'a');

6.92 SDO_NET.LRS_GEOMETRY_NETWORK

構文

SDO_NET.LRS_GEOMETRY_NETWORK(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークがLRSジオメトリを含む空間ネットワークである場合、文字列TRUEを戻します。ネットワークがLRSジオメトリを含む空間ネットワークではない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

USER_SDO_NETWORK_METADATAビュー内で、ネットワークのエントリのGEOMETRY_TYPE列に値LRS_GEOMETRYが含まれる場合、そのネットワークにはLRSジオメトリが含まれます。(USER_SDO_NETWORK_METADATAビューについては、「xxx_SDO_NETWORK_METADATAビュー」を参照してください。)

次の例では、ROADS_NETWORKという名前のネットワークが、LRSジオメトリを含む空間ネットワークであるかどうかを確認します。

SELECT SDO_NET.LRS_GEOMETRY_NETWORK('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.LRS_GEOMETRY_NETWORK('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
TRUE

6.93 SDO_NET.NETWORK_EXISTS

構文

SDO_NET.NETWORK_EXISTS(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークが存在する場合、文字列TRUEを戻します。ネットワークが存在しない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

(SDO_NET.DROP_NETWORKプロシージャを使用して)ネットワークを削除すると、そのネットワークは存在しなくなります。

次の例では、ROADS_NETWORKという名前のネットワークが存在するかどうかを確認します。

SELECT SDO_NET.NETWORK_EXISTS('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.NETWORK_EXISTS('ROADS_NETWORK')                                         
--------------------------------------------------------------------------------
TRUE 

6.94 SDO_NET.POST_XML

構文

SDO_NET.POST_XML(      
  url      IN VARCHAR2,      
  request  IN XMLTYPE      
) RETURN XMLTYPE;

説明

XMLリクエストをURLに送信し、XMLレスポンスを戻します。

パラメータ

url

リクエストを受信するURL (Uniform Resource Locator)を指定します。

request

XML形式のリクエストを指定します。

使用上の注意

ネットワーク・データ・モデル・グラフに対するXML APIの詳細は、「ネットワーク・データ・モデル・グラフのXMLインタフェース」を参照してください。

次の例では、XMLリクエストを指定してURLに送信し、XMLレスポンスを戻して表示します。

DECLARE
  xml_request varchar2(4000); 
  ndmws_url varchar2(4000);
  xml_response xmltype;
BEGIN
  xml_request :=
'<?xml version="1.0" ?>
<networkAnalysisRequest
   xmlns="http://xmlns.oracle.com/spatial/network"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:gml="http://www.opengis.net/gml">
  <networkName>HILLSBOROUGH_NETWORK2</networkName>
  <shortestPath>
    <startPoint>
      <nodeID>1533</nodeID>
    </startPoint>
    <endPoint>
      <nodeID>10043</nodeID>
    </endPoint>
    <subPathRequestParameter>
      <cost> true </cost>
      <isFullPath> true </isFullPath>
      <startLinkIndex> true </startLinkIndex>
      <startPercentage> true </startPercentage>
      <endLinkIndex> true </endLinkIndex>
      <endPercentage> true </endPercentage>
    <pathRequestParameter>
      <cost> true </cost>
      <isSimple> true </isSimple>
      <startNodeID>true</startNodeID>
      <endNodeID>true</endNodeID>
      <noOfLinks>true</noOfLinks>
      <linksRequestParameter>
        <onlyLinkID>true</onlyLinkID>
      </linksRequestParameter>
      <nodesRequestParameter>
        <onlyNodeID>true</onlyNodeID>
      </nodesRequestParameter>
    </pathRequestParameter>
    </subPathRequestParameter>
  </shortestPath>
</networkAnalysisRequest>';
  ndmws_url := 'http://localhost:7001/SpatialWS-SpatialWS-context-root/SpatialWSXmlServlet';
  xml_response := sdo_net.POST_XML(ndmws_url, XMLTYPE(xml_request));
  dbms_output.put_line(xml_response.getStringVal());
END;
/

6.95 SDO_NET.REGISTER_CONSTRAINT

構文

SDO_NET.REGISTER_CONSTRAINT(      
  constraint_name IN VARCHAR2,      
  class_name      IN VARCHAR2,      
  directory_name  IN VARCHAR2,      
  description     IN VARCHAR2);

説明

指定したネットワーク制約用にコンパイルしたJavaコードをデータベース内のJavaクラス・リポジトリにロードし、クラス名をUSER_SDO_NETWORK_CONSTRAINTSビュー(「xxx_SDO_NETWORK_CONSTRAINTSビュー」を参照)のCLASS列にロードします。

パラメータ

constraint_name

ネットワーク制約の名前を指定します。

class_name

ネットワーク制約を実装するクラスの完全修飾名(パッケージの名前を含む)を指定します。

directory_name

ネットワーク制約をコンパイルしたときに作成されたクラス・ファイルの場所を特定する、ディレクトリ・オブジェクト(SQL文のCREATE DIRECTORYで作成)の名前を指定します。

description

ネットワーク制約の説明を記述します。

使用上の注意

このプロシージャをコールする前に、USER_SDO_NETWORK_CONSTRAINTSビューに行を挿入し、ネットワーク制約を実装するJavaクラスのコードをコンパイルし、コンパイルされたクラスの場所を特定するディレクトリ・オブジェクトをCREATE DIRECTORY文を使用して作成する必要があります。ネットワーク制約の詳細は、「ネットワーク制約」を参照してください。

USER_SDO_NETWORK_CONSTRAINTSビューから制約の行を削除して、その制約を無効にするには、SDO_NET.DEREGISTER_CONSTRAINTプロシージャを使用します。

次の例では、GivenProhibitedTurnという名前のネットワーク制約を登録します。

-- Set up the network constraint.
REM
REM Create the geor_dir on the file system first.
REM
-- Connect as SYSTEM.
DECLARE 
  -- This is the directory that contains the CLASS file generated when you
  -- compiled the network constraint.
  geor_dir varchar2(1000) := 'C:\my_data\files81\PROTOTYPES\NETWORK_CONSTRAINT\PLSQL_EXAMPLE';
BEGIN 
  EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY work_dir AS''' || geor_dir || ''''; 
END;
/
GRANT read,write on directory work_dir to net_con;
 
-- Connect as the user that will register the constraint. 
 
REM
REM Compile GivenProhibitedTurn before you register the constraint.
REM
BEGIN
  SDO_NET.REGISTER_CONSTRAINT('GivenProhibitedTurn', 
     'com/network/constraints/ProhibitedTurn',
     'WORK_DIR', 'This is a network constraint that '||
     'prohibits certain turns');
 
END;
/

6.96 SDO_NET.SDO_GEOMETRY_NETWORK

構文

SDO_NET.SDO_GEOMETRY_NETWORK(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークがSDOジオメトリ(メジャー情報を持たない空間ジオメトリ)を含む空間ネットワークである場合、文字列TRUEを戻します。ネットワークがSDOジオメトリを含む空間ネットワークではない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

USER_SDO_NETWORK_METADATAビュー内で、ネットワークのエントリのGEOMETRY_TYPE列に値SDO_GEOMETRYが含まれる場合、そのネットワークにはSDOジオメトリが含まれます。(USER_SDO_NETWORK_METADATAビューについては、「xxx_SDO_NETWORK_METADATAビュー」を参照してください。)

次の例では、ROADS_NETWORKという名前のネットワークが、SDOジオメトリを含む空間ネットワークであるかどうかを確認します。

SELECT SDO_NET.SDO_GEOMETRY_NETWORK('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.SDO_GEOMETRY_NETWORK('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
FALSE

6.97 SDO_NET.SET_LOGGING_LEVEL

構文

SDO_NET.SET_LOGGING_LEVEL(      
  level  IN NUMBER);

説明

ネットワーク操作に対して表示されるメッセージについて、重大度の最低レベルを設定します。

パラメータ

level

ネットワーク操作に対して表示されるメッセージについて、重大度の最低レベルを指定します。「使用上の注意」に示されている数値制約のいずれか1つを指定してください。

使用上の注意

指定されたロギング・レベル以上のすべてのメッセージが書き込まれます。ロギング・レベルの最高レベルから最低レベルまでを次に示します。

SDO_NET.LOGGING_LEVEL_FATAL
SDO_NET.LOGGING_LEVEL_ERROR
SDO_NET.LOGGING_LEVEL_WARN
SDO_NET.LOGGING_LEVEL_INFO
SDO_NET.LOGGING_LEVEL_DEBUG
SDO_NET.LOGGING_LEVEL_FINEST

ロギング・レベルは、このファンクションの基礎となる実装からのJavaロギング・レベルです。したがって、コンソール上でJavaロギングの出力を確認するには、あらかじめ次の文を実行しておく必要があります。

SET SERVEROUTPUT ON;
EXECUTE DBMS_JAVA.SET_OUTPUT(10000);

次の例では、ロギング・レベルをSDO_NET.LOGGING_LEVEL_ERRORに設定します。これにより、重大度のレベルがSDO_NET.LOGGING_LEVEL_ERRORまたはSDO_NET.LOGGING_LEVEL_FATALのメッセージのみが表示されます。

EXECUTE SDO_NET.SET_LOGGING_LEVEL(SDO_NET.LOGGING_LEVEL_ERROR);

6.98 SDO_NET.SET_MAX_JAVA_HEAP_SIZE

構文

SDO_NET.SET_MAX_JAVA_HEAP_SIZE(      
  bytes  IN NUMBER);

説明

Oracle Java仮想マシンで実行するアプリケーション用の最大Javaヒープ・サイズを設定します。

パラメータ

bytes

最大Javaヒープ・サイズのバイト数を指定します。

使用上の注意

java.lang.OutOfMemoryError例外が発生した場合は、このプロシージャを使用して、最大ヒープ・サイズを増やすことができます。

システムの上限より大きな値を指定すると、システムの上限値が使用されます。

次の例では、最大Javaヒープ・サイズを536870912(512MB)に設定します。

EXECUTE SDO_NET.SET_MAX_JAVA_HEAP_SIZE(536870912);

6.99 SDO_NET.SPATIAL_PARTITION

構文

SDO_NET.SPATIAL_PARTITION(      
  network              IN VARCHAR2,      
  partition_table_name IN VARCHAR2,      
  max_num_nodes        IN NUMBER,      
  log_loc              IN VARCHAR2,      
  log_file             IN VARCHAR2,      
  open_mode            IN VARCHAR2 DEFAULT 'A',      
  link_level           IN NUMBER DEFAULT 1);

説明

空間ネットワークをパーティション化し、情報をパーティション表に格納します。

パラメータ

network

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

partition_table_name

このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。

max_num_nodes

各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

link_level

パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、ネットワークの計算時に優先順位の高いリンクが最初に考慮されます。

使用上の注意

このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるためにSDO_NET.GENERATE_PARTITION_BLOBSプロシージャの使用を検討してください。

次の例では、MY_PARTITIONED_NETネットワーク内にリンク・レベル1のパーティションを作成して、MY_PARTITIONED_NET_TAB表を作成します。各パーティションに配置するノードの最大数は5000です。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_partitioned_net.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.SPATIAL_PARTITION(network => 'MY_PARTITIONED_NET', -
  partition_table_name => 'my_partitioned_net_tab',-
  max_num_nodes => 5000,-
  log_loc => 'LOG_DIR', log_file=> 'my_partitioned_net.log',-
  link_level => 1, open_mode => 'a');

6.100 SDO_NET.TOPO_GEOMETRY_NETWORK

構文

SDO_NET.TOPO_GEOMETRY_NETWORK(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークがSDO_TOPO_GEOMETRY(トポロジ・ジオメトリ)オブジェクトを含む空間ネットワークである場合、文字列TRUEを戻します。ネットワークがSDO_TOPO_GEOMETRYオブジェクトを含む空間ネットワークではない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

USER_SDO_NETWORK_METADATAビュー内で、ネットワークのエントリのGEOMETRY_TYPE列に値TOPO_GEOMETRYが含まれる場合、そのネットワークにはSDO_TOPO_GEOMETRYオブジェクトが含まれます。(USER_SDO_NETWORK_METADATAビューについては、「xxx_SDO_NETWORK_METADATAビュー」を参照してください。)

次の例では、ROADS_NETWORKという名前のネットワークが、SDO_TOPO_GEOMETRYオブジェクトを含む空間ネットワークであるかどうかを確認します。

SELECT SDO_NET.TOPO_GEOMETRY_NETWORK('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.TOPO_GEOMETRY_NETWORK('ROADS_NETWORK')                                  
--------------------------------------------------------------------------------
FALSE

6.101 SDO_NET.UPDATE_FEATURE

構文

SDO_NET.UPDATE_FEATURE(      
  feature_layer_id   IN NUMBER,      
  feature_id         IN NUMBER,      
  feature_elements   IN SDO_NET_FEAT_ELEM_ARRAY DEFAULT NULL,      
  child_feature_ids  IN SDO_NET_LAYER_FEAT_ARRAY DEFAULT NULL,      
  check_integrity    IN BOOLEAN DEFAULT TRUE);

説明

フィーチャ・レイヤー内のフィーチャを更新します。

パラメータ

feature_layer_id

フィーチャを更新するフィーチャ・レイヤーのIDを指定します。

feature_id

更新されるフィーチャのIDを指定します。

feature_elements

既存のフィーチャ要素に追加する、フィーチャのフィーチャ要素を指定します。このパラメータがNULLの場合、既存のフィーチャ要素は変更されません。このパラメータがの場合、既存のフィーチャ要素は削除されます。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

child_feature_ids

既存の子フィーチャに追加する、フィーチャの子フィーチャを指定します。このパラメータがNULLの場合、既存の子フィーチャは変更されません。このパラメータがの場合、子フィーチャとの、このフィーチャの既存の親関係は削除されます。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

check_integrity

TRUE (デフォルト)を指定すると、入力ネットワーク要素が存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、入力ネットワーク要素が存在するかどうかを確認しません。

使用上の注意

フィーチャをフィーチャ・レイヤーに追加するには、SDO_NET.ADD_FEATUREプロシージャを使用します。

フィーチャ・レイヤーIDは、フィーチャ・レイヤーに対して自動的に生成されます。

次の例では、2つのフィーチャ要素を定義して追加することによって、指定したフィーチャを更新します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  elements SDO_NET_FEAT_ELEM_ARRAY := SDO_NET_FEAT_ELEM_ARRAY();
  link_id NUMBER := 1314;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  elements.extend;
  elements(1) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.7, null);
  elements.extend;
  elements(2) := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.8, null);
  sdo_net.update_feature(feature_layer_id, feature_id, elements, null);
END;
/

6.102 SDO_NET.UPDATE_FEATURE_ELEMENT

構文

SDO_NET.UPDATE_FEATURE_ELEMENT(      
  feature_layer_id IN NUMBER,      
  feature_id       IN NUMBER,      
  sequence_number  IN NUMBER,      
  feature_element  IN SDO_NET_FEAT_ELEM,      
  check_integrity  IN BOOLEAN DEFAULT TRUE);

説明

フィーチャ要素を更新します。

パラメータ

feature_layer_id

フィーチャのフィーチャ・レイヤーのIDを指定します。

feature_id

フィーチャのIDです。

sequence_number

更新されるフィーチャ要素の順序番号を指定します。

feature_element

指定したフィーチャ要素を置換するフィーチャ要素の定義を指定します。(SDO_NET_FEAT_ELEM型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)

check_integrity

TRUE (デフォルト)を指定すると、入力ネットワーク要素が存在するかどうかを確認し、存在しない場合はエラーが生成されます。FALSEを指定すると、入力ネットワーク要素が存在するかどうかを確認しません。

使用上の注意

フィーチャ要素を追加するには、SDO_NET.ADD_FEATURE_ELEMENTプロシージャを使用し、1回の操作で複数のフィーチャ要素を追加するには、SDO_NET.ADD_FEATURE_ELEMENTSプロシージャを使用します。

次の例では、フィーチャID 1のリンクID 1314上にある順序番号2のフィーチャ要素を更新します。

DECLARE
  feature_layer_id NUMBER;
  feature_id NUMBER := 1;
  element SDO_NET_FEAT_ELEM;
  link_id NUMBER := 1314;
BEGIN
  feature_layer_id := sdo_net.get_feature_layer_id('GRID', 'POI');
  element := SDO_NET_FEAT_ELEM(SDO_NET.FEAT_ELEM_TYPE_POL, link_id, 0.2, null);
  sdo_net.update_feature_element(feature_layer_id, feature_id, 1, element);
END;
/

6.103 SDO_NET.VALIDATE_LINK_SCHEMA

構文

SDO_NET.VALIDATE_LINK_SCHEMA(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワーク内のリンクに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のリンクに関連するメタデータが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、空間ネットワークの表名、ジオメトリ列およびコスト列、LRSネットワークのメジャー関連の情報、トポロジ・ネットワークのトポロジ関連の情報、および階層ネットワークの階層関連の情報が有効かどうかを確認します。

次の例では、ROADS_NETWORKという名前のネットワーク内のリンクに関連するメタデータが有効かどうかを確認します。

SELECT SDO_NET.VALIDATE_LINK_SCHEMA('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.VALIDATE_LINK_SCHEMA('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
TRUE

6.104 SDO_NET.VALIDATE_LRS_SCHEMA

構文

SDO_NET.VALIDATE_LRS_SCHEMA(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワークのLRS情報に関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワークのLRS情報に関連するメタデータが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

なし。

次の例では、ROADS_NETWORKという名前のネットワークのLRS情報に関連するメタデータが有効かどうかを確認します。

SELECT SDO_NET.VALIDATE_LRS_SCHEMA('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.VALIDATE_LRS_SCHEMA('ROADS_NETWORK')                                    
--------------------------------------------------------------------------------
TRUE

6.105 SDO_NET.VALIDATE_NETWORK

構文

SDO_NET.VALIDATE_NETWORK(      
  network     IN VARCHAR2,      
  check_data  IN VARCHAR2 DEFAULT 'FALSE'       
) RETURN VARCHAR2;

説明

ネットワークが有効な場合、文字列TRUEを戻します。ネットワークが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

check_data

TRUEを指定すると、ネットワーク・データの参照整合性について詳細な確認が行われます。FALSE(デフォルト)を指定すると、ネットワーク・データの参照整合性について、詳細な確認ではなく基本的な確認が行われます。

使用上の注意

このファンクションは、ネットワークのメタデータおよび適用されるネットワーク・スキーマ構造(リンク、ノード、パス、サブパス、LRS)を確認します。ネットワーク・データについて基本的な参照整合性の確認を行い、オプションで詳細な確認を行います。エラーが検出されると、このファンクションは文字列FALSEを戻します。

このファンクションでは、次の項目が確認されます。

  • ネットワークが存在する。

  • ネットワークのノード表およびリンク表が存在し、それらの表が必要な列を含んでいる。

  • ノード表に各リンクの開始ノードおよび終了ノードが存在する。

  • LRSジオメトリ・ネットワークの場合、LRS表が存在し、必要な列を含んでいる。

  • 空間ネットワークの場合、ノードおよびパスのジオメトリの列が存在し、それらの列に空間索引が定義されている。

  • check_dataTRUEの場合、ネットワーク・データについて詳細な参照整合性の確認が行われます。特にネットワークが大規模な場合は、この確認に時間がかかります。

次の例では、LOG_NET1という名前のネットワークを検証します。

SELECT SDO_NET.VALIDATE_NETWORK('LOG_NET1') FROM DUAL;
 
SDO_NET.VALIDATE_NETWORK('LOG_NET1')
--------------------------------------------------------------------------------
TRUE

6.106 SDO_NET.VALIDATE_NODE_SCHEMA

構文

SDO_NET.VALIDATE_NODE_SCHEMA(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワーク内のノードに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のノードに関連するメタデータが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、空間ネットワークの表名、ジオメトリ列およびコスト列、LRSネットワークのメジャー関連の情報、トポロジ・ネットワークのトポロジ関連の情報、および階層ネットワークの階層関連の情報が有効かどうかを確認します。

次の例では、LOG_NET1という名前のネットワーク内のノードに関連するメタデータが有効かどうかを確認します。

SELECT SDO_NET.VALIDATE_NODE_SCHEMA('LOG_NET1') FROM DUAL;
 
SDO_NET.VALIDATE_NODE_SCHEMA('LOG_NET1')
--------------------------------------------------------------------------------
TRUE

6.107 SDO_NET.VALIDATE_PARTITION_SCHEMA

構文

SDO_NET.VALIDATE_PARTITION_SCHEMA(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワーク内のパーティションに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のパーティションに関連するメタデータが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

パーティション表の情報が有効かどうかを確認します(「パーティション表」を参照)。

次の例では、SDO_PARTITIONEDという名前のネットワーク内のパーティションに関連するメタデータが有効かどうかを確認します。

SELECT SDO_NET.VALIDATE_PARTITION_SCHEMA('SDO_PARTITIONED') FROM DUAL;
 
SDO_NET.VALIDATE_PARTITION_SCHEMA('SDO_PARTITIONED')
--------------------------------------------------------------------------------
TRUE

6.108 SDO_NET.VALIDATE_PATH_SCHEMA

構文

SDO_NET.VALIDATE_PATH_SCHEMA(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワーク内のパスに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のパスに関連するメタデータが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

このファンクションは、空間ネットワークの表名、ジオメトリ列およびコスト列、LRSネットワークのメジャー関連の情報、トポロジ・ネットワークのトポロジ関連の情報、および階層ネットワークの階層関連の情報が有効かどうかを確認します。

次の例では、ROADS_NETWORKという名前のネットワーク内のパスに関連するメタデータが有効かどうかを確認します。

SELECT SDO_NET.VALIDATE_PATH_SCHEMA('ROADS_NETWORK') FROM DUAL;
 
SDO_NET.VALIDATE_PATH_SCHEMA('ROADS_NETWORK')                                   
--------------------------------------------------------------------------------
TRUE

6.109 SDO_NET.VALIDATE_SUBPATH_SCHEMA

構文

SDO_NET.VALIDATE_SUBPATH_SCHEMA(      
  network  IN VARCHAR2      
) RETURN VARCHAR2;

説明

ネットワーク内のサブパスに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のサブパスに関連するメタデータが有効でない場合は、文字列FALSEを戻します。

パラメータ

network

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

使用上の注意

サブパス表の情報が有効かどうかを確認します(「サブパス表」を参照)。

次の例では、MY_NETWORKという名前のネットワーク内のサブパスに関連するメタデータが有効かどうかを確認します。

SELECT SDO_NET.VALIDATE_SUBPATH_SCHEMA('MY_NETWORK') FROM DUAL;
 
SDO_NET.VALIDATE_SUBPATH_SCHEMA('MY_NETWORK')
--------------------------------------------------------------------------------
TRUE