| Oracle® Spatial and Graphトポロジ・データ・モデルおよびネットワーク・データ・モデル・グラフ開発者ガイド 12cリリース1 (12.1) B72471-05 |
|
![]() 前 |
![]() 次 |
MDSYS.SDO_NETパッケージには、ネットワーク管理を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章で説明するサブプログラムを使用する場合は、概念を理解しておく必要があります(「ネットワーク・データ・モデル・グラフの概要」を参照)。
論理カテゴリにグループ化されているサブプログラムのリストの詳細は、「ネットワーク・データ・モデル・グラフのPL/SQLインタフェース」を参照してください。この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
構文
SDO_NET.ADD_CHILD_FEATURE(
parent_layer_id IN UMBER,
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);
説明
フィーチャを、指定した親フィーチャの子フィーチャとして関連付けます。
パラメータ
親フィーチャ・レイヤーのIDを指定します。
指定した子フィーチャの親フィーチャになるフィーチャのIDを指定します。
子フィーチャ・レイヤーのIDを指定します。
指定した親フィーチャの子フィーチャとして関連付けられるフィーチャのIDを指定します。(SDO_NET_LAYER_FEAT型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
子フィーチャ・レイヤー内のchild_feature_idフィーチャの順序番号を指定します。このパラメータがNULLの場合、現在の最終番号の次の順序番号が割り当てられます。
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;
/
構文
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);
説明
複数のフィーチャを、指定した親フィーチャの子フィーチャとして関連付けます。
パラメータ
親フィーチャ・レイヤーのIDを指定します。
指定した子フィーチャの親フィーチャになるフィーチャのIDを指定します。
指定した親フィーチャの子フィーチャとして関連付けられるフィーチャのIDを指定します。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
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;
/
構文
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);
説明
フィーチャ・レイヤーにフィーチャを追加します。
パラメータ
フィーチャの追加先となるフィーチャ・レイヤーのIDを指定します。
フィーチャ・レイヤーに追加されるフィーチャのIDを指定します。
追加されるフィーチャのフィーチャ要素を指定します。このパラメータがNULLの場合、このフィーチャに対して定義されているフィーチャ要素はありません。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
フィーチャとともに追加される、フィーチャの子フィーチャのIDを指定します。このパラメータがNULLの場合、追加される子フィーチャはありません。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
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;
/
構文
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);
説明
フィーチャにフィーチャ要素を追加します。
パラメータ
フィーチャのフィーチャ・レイヤーのIDを指定します。
フィーチャのIDです。
フィーチャに追加されるフィーチャ要素を指定します。このフィーチャ要素は、フィーチャに含まれる既存の任意のフィーチャ要素の最後に自動的に追加されます。(SDO_NET_FEAT_ELEM型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
フィーチャに追加されるフィーチャ要素の順序番号を指定します。このパラメータがNULLの場合、現在の最終番号の次の順序番号が割り当てられます。
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;
/
構文
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);
説明
フィーチャ要素の配列をフィーチャに追加します。
パラメータ
フィーチャのフィーチャ・レイヤーのIDを指定します。
フィーチャのIDです。
フィーチャに追加されるフィーチャ要素を指定します。これらのフィーチャ要素は、フィーチャに含まれる既存の任意のフィーチャ要素の最後に自動的に追加されます。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
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;
/
構文
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);
説明
フィーチャ・レイヤーを追加します。
パラメータ
ネットワーク名です。
フィーチャ・レイヤーの名前を指定します。
(表5-1から)レイヤー内のフィーチャのタイプを指定します。
フィーチャ表(「フィーチャ表」を参照)の名前を指定します。
フィーチャ要素関係表(「フィーチャ要素関係表」を参照)の名前を指定します。
フィーチャ階層表(「フィーチャ階層表」を参照)の名前を指定します。
使用上の注意
フィーチャ・レイヤー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;
/
構文
SDO_NET.COMPUTE_PATH_GEOMETRY(
network IN VARCHAR2,
path_id IN NUMBER,
tolerance IN NUMBER
) RETURN SDO_GEOMETRY;
説明
パスの空間ジオメトリを戻します。
パラメータ
使用上の注意
このファンクションは、指定されたパスについて、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))
構文
SDO_NET.COPY_NETWORK(
source_network IN VARCHAR2,
target_network IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
説明
メタデータ表を含む、ネットワークのコピーを作成します。
パラメータ
使用上の注意
このプロシージャは、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');
構文
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);
説明
ネットワークのリンク表を作成します。
パラメータ
リンク表の名前を指定します。
空間ネットワークのリンクのジオメトリ・タイプを示す値を指定します。非LRSのSDO_GEOMETRYオブジェクトの場合はSDO_GEOMETRY、LRSのSDO_GEOMETRYオブジェクトの場合はLRS_GEOMETRY、SDO_TOPO_GEOMETRYオブジェクトの場合はTOPO_GEOMETRYです。
空間ネットワーク内のリンクに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。(geom_type値の綴りが正しくない場合、geom_column列は表に含まれません。)
リンクに関連付けるコスト値を含む列の名前を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、「ネットワークの階層」を参照してください。)
TRUEを指定すると、リンク表にBIDIRECTEDという名前の列が追加され、FALSE (デフォルト)を指定すると、リンク表にBIDIRECTEDという名前の列が追加されません。
リンク表を作成するために内部的に使用される物理記憶域パラメータを指定します。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);
構文
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);
説明
論理ネットワークを作成してすべての必要な表を作成し、そのネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、「ネットワークの階層」を参照してください。)
ブール値を指定します。リンクが有向リンクである場合はTRUE、無向リンクの場合(有向リンクでない場合)はFALSEを指定します。
ブール値を指定します。TRUEを指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE (デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
作成するノード表の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のコスト列の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のコスト列の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
作成するパスリンク表の名前を指定します。(パスリンク表については、「パスリンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
将来の使用のために予約されています。今回のリリースでは、無視されます。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに論理ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(「xxx_SDO_NETWORK_METADATAビュー」を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびコスト列の名前を指定できます。
このプロシージャを使用するかわりに、SDO_NET.CREATE_NODE_TABLE、SDO_NET.CREATE_LINK_TABLE、SDO_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);
構文
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オブジェクトを含む空間ネットワークを作成してすべての必要な表を作成し、ネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
LRSジオメトリ列を含む表の名前を指定します。
LRSジオメトリ(線形参照のメジャー情報を含むSDO_GEOMETRYオブジェクト)を含むlrs_table_nameの列の名前を指定します。
ブール値を指定します。リンクが有向リンクである場合はTRUE、無向リンクの場合(有向リンクでない場合)はFALSEを指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、「ネットワークの階層」を参照してください。)
ブール値を指定します。TRUEを指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE (デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
将来の使用のために予約されています。今回のリリースでは、無視されます。
作成するノード表の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のコスト列の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のコスト列の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
パス表のジオメトリ列の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
作成するパスリンク表の名前を指定します。(パスリンク表については、「パスリンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
サブパス表のジオメトリ列の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときにLRSジオメトリの空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(「xxx_SDO_NETWORK_METADATAビュー」を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびジオメトリ列名とコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびジオメトリ列とコスト列の名前を指定できます。
このプロシージャを使用するかわりに、SDO_NET.CREATE_NODE_TABLE、SDO_NET.CREATE_LINK_TABLE、SDO_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);
構文
SDO_NET.CREATE_LRS_TABLE(
table_name IN VARCHAR2,
geom_column IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
説明
Oracle Spatial and Graphの線形参照システム(LRS)・ジオメトリを格納するための表を作成します。
パラメータ
geom_columnで指定したジオメトリ列を含む表の名前を指定します。
ジオメトリ・オブジェクトを含む(SDO_GEOMETRY型の)列の名前を指定します。
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
構文
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);
説明
ノード表を作成します。
パラメータ
ノード表の名前を指定します。
空間ネットワーク内のノードのジオメトリ・タイプを示す値を指定します。非LRSのSDO_GEOMETRYオブジェクトの場合はSDO_GEOMETRY、LRSのSDO_GEOMETRYオブジェクトの場合はLRS_GEOMETRY、SDO_TOPO_GEOMETRYオブジェクトの場合はTOPO_GEOMETRYです。(geom_type値の綴りが正しくない場合、geom_column列は表に含まれません。)
空間ネットワーク内のノードに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
ノードに関連付けるコスト値を含む列の名前を指定します。
ノードに関連付けるパーティションID値を含む列の名前を指定します。
ネットワーク内のノードの階層レベルの数を指定します。(ネットワーク階層については、「ネットワークの階層」を参照してください。)
将来の使用のために予約されています。今回のリリースでは、無視されます。
<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);
構文
SDO_NET.CREATE_PARTITION_TABLE(
table_name IN VARCHAR2);
説明
パーティション表を作成します。
使用上の注意
パーティション表については、「パーティション表」を参照してください。
ロード・オンデマンド方式を使用した分析を実行するための、パーティション化されたネットワークの使用方法については、「ロード・オンデマンドを使用したネットワーク分析」を参照してください。
例
次の例では、MY_PART_TABという名前のパーティション表を作成します。
EXECUTE SDO_NET.CREATE_PARTITION_TABLE('MY_PART_TAB');
構文
SDO_NET.CREATE_PATH_LINK_TABLE(
table_name IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
説明
パスリンク表(パス表の各パスに各リンクの行を持つ表)を作成します。
パラメータ
例
次の例では、ROADS_PATHS_LINKSという名前のパスリンク表を作成します。
EXECUTE SDO_NET.CREATE_PATH_LINK_TABLE('ROADS_PATHS_LINKS');
構文
SDO_NET.CREATE_PATH_TABLE(
table_name IN VARCHAR2,
geom_column IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
説明
パス表を作成します。
パラメータ
使用上の注意
パス表については、「パス表」を参照してください。
ネットワークでパスを使用するには、パス表の作成後にSDO_NET.CREATE_PATH_LINK_TABLEプロシージャを使用してパスリンク表を作成し、そのパスリンク表を移入する必要があります。
例
次の例では、PATH_GEOMETRYという名前のジオメトリ列を含むROADS_PATHSという名前のパス表を作成します。
EXECUTE SDO_NET.CREATE_PATH_TABLE('ROADS_PATHS', 'PATH_GEOMETRY');
構文
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オブジェクトを含む空間ネットワークを作成してすべての必要な表を作成し、ネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、「ネットワークの階層」を参照してください。)
ブール値を指定します。リンクが有向リンクである場合はTRUE、無向リンクの場合(有向リンクでない場合)はFALSEを指定します。
ブール値を指定します。TRUEを指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE (デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
作成するノード表の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のジオメトリ列の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
ノード表のコスト列の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のジオメトリ列の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
リンク表のコスト列の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
パス表のジオメトリ列の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
作成するパスリンク表の名前を指定します。(パスリンク表については、「パスリンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
サブパス表のジオメトリ列の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
将来の使用のために予約されています。今回のリリースでは、無視されます。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(「xxx_SDO_NETWORK_METADATAビュー」を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびジオメトリ列名とコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびジオメトリ列とコスト列の名前を指定できます。
このプロシージャを使用するかわりに、SDO_NET.CREATE_NODE_TABLE、SDO_NET.CREATE_LINK_TABLE、SDO_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);
構文
SDO_NET.CREATE_SUBPATH_TABLE(
table_name IN VARCHAR2,
geom_column IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
説明
サブパス表を作成します。
パラメータ
サブパス表の名前を指定します。
空間ネットワークのサブパスに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
サブパス表(「ノード表」を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
例
次の例では、SUBPATH_GEOMETRYという名前のジオメトリ列を含むROADS_SUBPATHSという名前のサブパス表を作成します。
EXECUTE SDO_NET.CREATE_SUBPATH_TABLE('ROADS_SUBPATHS', 'SUBPATH_GEOMETRY');
構文
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オブジェクトを含む空間トポロジ・ネットワークを作成してすべての必要な表を作成し、そのネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、「ネットワークの階層」を参照してください。)
ブール値を指定します。リンクが有向リンクである場合はTRUE、無向リンクの場合(有向リンクでない場合)はFALSEを指定します。
ブール値を指定します。TRUEを指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE (デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
作成するノード表の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のコスト列の名前を指定します。(ノード表については、「ノード表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のコスト列の名前を指定します。(リンク表については、「リンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
パス表のジオメトリ列の名前を指定します。(パス表については、「パス表」を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
作成するパスリンク表の名前を指定します。(パスリンク表については、「パスリンク表」を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
サブパス表のジオメトリ列の名前を指定します。(サブパス表については、「サブパス表」を参照してください。)
将来の使用のために予約されています。今回のリリースでは、無視されます。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。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_TABLE、SDO_NET.CREATE_LINK_TABLE、SDO_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);
構文
SDO_NET.DELETE_CHILD_FEATURES(
parent_layer_id IN NUMBER,
parent_feature_id IN NUMBER,
child_feature_ids IN SDO_NET_LAYER_FEAT_ARRAY);
説明
入力子フィーチャの親子関係を削除します。
パラメータ
親フィーチャ・レイヤーのIDを指定します。
指定した子フィーチャの親フィーチャのIDを指定します。
子フィーチャの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;
/
構文
SDO_NET.DELETE_CHILD_FEATURES_AT(
parent_layer_id IN NUMBER,
parent_feature_id IN NUMBER,
sequence_numbers IN SDO_NUMBER_ARRAY);
説明
指定した順序番号の子フィーチャの親子関係を削除します。
パラメータ
親フィーチャ・レイヤーのIDを指定します。
指定した子フィーチャの親フィーチャのIDを指定します。
子フィーチャの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;
/
構文
SDO_NET.DELETE_DANGLING_FEATURES(
feature_layer_id IN NUMBER);
説明
フィーチャ・レイヤー内のダングリング・フィーチャを削除します。ダングリング・フィーチャとは、ネットワーク要素(ノードまたはリンク)に関連付けられていないフィーチャです。
使用上の注意
フィーチャ・レイヤー内のダングリング・フィーチャを検出するには、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;
/
構文
SDO_NET.DELETE_DANGLING_LINKS(
network IN VARCHAR2);
説明
任意のフィーチャ・レイヤー内のいずれのフィーチャからも参照されていないリンクを削除します。
使用上の注意
ネットワーク内のダングリング・リンクを検出するには、SDO_NET.GET_DANGLING_LINKSファンクションを使用します。
例
次の例では、GRIDネットワーク内のダングリング・リンクを削除します。
EXECUTE sdo_net.delete_dangling_links('GRID');
構文
SDO_NET.DELETE_DANGLING_NODES(
network IN VARCHAR2);
説明
任意のフィーチャ・レイヤー内のいずれのフィーチャからも参照されていないノードを削除します。
使用上の注意
ネットワーク内のダングリング・ノードを検出するには、SDO_NET.GET_DANGLING_NODESファンクションを使用します。
例
次の例では、GRIDネットワーク内のダングリング・ノードを削除します。
EXECUTE sdo_net.delete_dangling_nodes('GRID');
構文
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);
説明
フィーチャからフィーチャ要素を削除します。
パラメータ
フィーチャを含むフィーチャ・レイヤーのIDを指定します。
フィーチャ要素の削除元となるフィーチャのIDを指定します。
削除されるフィーチャ要素を指定します。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
指定したフィーチャのみによって参照されるネットワーク要素もすべて削除するかどうかを制御します(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;
/
構文
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);
説明
指定した順序番号のフィーチャ要素をフィーチャから削除します。
パラメータ
使用上の注意
このプロシージャは、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;
/
構文
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);
説明
フィーチャを削除します。
パラメータ
フィーチャを含むフィーチャ・レイヤーのIDを指定します。
削除するフィーチャのIDを指定します。
指定したフィーチャのみによって参照されるネットワーク要素もすべて削除するかどうかを制御します(TRUEを指定すると、このような要素も削除され、FALSE (デフォルト)を指定すると、このような要素は削除されません)。
指定したフィーチャのみによって参照される子フィーチャもすべて削除するかどうかを制御します(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;
/
構文
SDO_NET.DELETE_LINK(
network IN VARCHAR2,
link_id IN NUMBER);
説明
リンクを削除し、すべての依存するネットワーク要素およびフィーチャからこのリンクへのすべての参照も削除します。
使用上の注意
このプロシージャは、指定したリンクをリンク表(「リンク表」を参照)から削除して、このリンクに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。
例
次の例では、SDO_NET2ネットワーク内のリンクIDが1のリンクを削除します。
SELECT SDO_NET.DELETE_LINK('SDO_NET2', 1);
構文
SDO_NET.DELETE_NODE(
network IN VARCHAR2,
node_id IN NUMBER);
説明
ノードを削除し、すべての依存するネットワーク要素およびフィーチャからこのノードへのすべての参照も削除します。
使用上の注意
このプロシージャは、指定したノードをノード表(「ノード表」を参照)から削除して、このノードに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したノードがリンク定義に含まれている場合は、それらのリンクは削除されます。削除されたリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。
例
次の例では、SDO_NET2ネットワーク内のノードIDが1のノードを削除します。
SELECT SDO_NET.DELETE_NODE('SDO_NET2', 1);
構文
SDO_NET.DELETE_PATH(
network IN VARCHAR2,
path_id IN NUMBER);
説明
パスおよびすべての依存するネットワーク要素を削除します。
使用上の注意
このプロシージャは、指定したパスをパス表(「パス表」を参照)から削除して、このパスに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したパスにサブパスが含まれている場合は、それらのサブパスも削除されます。
例
次の例では、SDO_NET2ネットワーク内のパスIDが1のパスを削除します。
SELECT SDO_NET.DELETE_PATH('SDO_NET2', 1);
構文
SDO_NET.DELETE_PHANTOM_FEATURES(
feature_layer_id IN NUMBER);
説明
フィーチャ・レイヤー内のファントム・フィーチャを削除します。ファントム・フィーチャとは、存在しないネットワーク要素(ノードまたはリンク)を参照するフィーチャです。
使用上の注意
フィーチャ・レイヤー内のファントム・フィーチャを検出するには、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;
/
構文
SDO_NET.DELETE_SUBPATH(
network IN VARCHAR2,
subpath_id IN NUMBER);
説明
サブパスを削除します。
使用上の注意
このプロシージャは、指定したサブパスをパス表(「パス表」を参照)から削除します。サブパス定義に依存している他の要素がないため、このプロシージャでは、他のネットワーク要素は削除されません。
例
次の例では、SDO_NET2ネットワーク内のサブパスIDが17のサブパスを削除します。
SELECT SDO_NET.DELETE_SUBPATH('SDO_NET2', 17);
構文
SDO_NET.DEREGISTER_CONSTRAINT(
constraint_name IN VARCHAR2);
説明
データベースのJavaリポジトリから、指定したネットワーク制約のクラスをアンロード(削除)し、USER_SDO_NETWORK_CONSTRAINTSビュー(「xxx_SDO_NETWORK_CONSTRAINTSビュー」を参照)から該当する制約の行を削除します。
使用上の注意
このプロシージャは、SDO_NET.REGISTER_CONSTRAINTプロシージャなどで、すでに有効化されているネットワーク制約を無効にする場合に使用します。ネットワーク制約の詳細は、「ネットワーク制約」を参照してください。
例
次の例では、GivenProhibitedTurnという名前のネットワーク制約を登録解除(無効化)します。
EXECUTE SDO_NET.DEREGISTER_CONSTRAINT('GivenProhibitedTurn');
構文
SDO_NET.DROP_FEATURE_LAYER(
network_name IN VARCHAR2,
feature_layer_name IN VARCHAR2,
drop_tables IN BOOLEAN DEFAULT FALSE);
説明
フィーチャ・レイヤーを削除します。
パラメータ
削除するフィーチャ・レイヤーを含むネットワークの名前を指定します。
削除するフィーチャ・レイヤーの名前を指定します。
関連するすべての表をフィーチャ・レイヤー・メタデータとともに削除するかどうかを制御します(TRUEを指定すると、フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表を削除し、さらにフィーチャ・レイヤー・メタデータを削除しますが、FALSE (デフォルト)を指定すると、フィーチャ・レイヤー・メタデータは削除しますが、フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表は削除しません)。
使用上の注意
(なし。)
例
次の例では、GRIDネットワーク内のPOIフィーチャ・レイヤーを削除し、さらに(drop_tablesがtrueであるため)フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表を削除し、フィーチャ・レイヤー・メタデータを削除します。
EXECUTE sdo_net.drop_feature_layer('GRID', 'POI', true);
構文
SDO_NET.FIND_CONNECTED_COMPONENTS(
network IN VARCHAR2);
説明
ネットワーク内で指定したリンク・レベルに接続されているすべてのコンポーネントを検索し、接続されているコンポーネントの表にその情報を格納します。
パラメータ
ネットワーク名を指定します。
接続されているコンポーネントを検索するためのリンク・レベルを指定します(デフォルトは1)。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成される、接続されているコンポーネントの表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)接続されているコンポーネント表については、「接続されているコンポーネント表」を参照してください。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す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');
構文
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');
説明
指定したマルチレベル・ネットワークのノード・レベルを生成し、その情報を表に格納します。
パラメータ
ネットワーク名を指定します。
ノード・レベル情報を格納する表を指定します。この表には、(node_id NUMBER PRIMARY KEY, link_level NUMBER)という定義が必要です。
node_level_table_nameで指定された表がすでに存在する場合の動作を制御し、TRUEを指定すると、その表の内容が新しいデータに置き換えられ、FALSE (デフォルト)を指定すると、エラーが生成されます。(node_level_table_nameで指定された表が存在しない場合、このパラメータは無視されます。)
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す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');
構文
SDO_NET.GENERATE_PARTITION_BLOB(
network IN VARCHAR2,
link_level IN NUMBER DEFAULT 1,
partition_id N 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表に格納します。
パラメータ
ネットワーク名を指定します。
BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
パーティションID番号を指定します。リンク・レベルとパーティションIDの指定した組合せに関連付けられたネットワーク要素は、生成されたBLOBに含まれています。
各BLOBで表現されるネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のユーザー・データについて、BLOBに含める場合はTRUE、BLOBに含めない場合はFALSEを指定します。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
(将来使用するために予約されています。唯一許可されている値は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');
構文
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表に格納します。
パラメータ
ネットワーク名を指定します。
各BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成されるパーティションBLOB表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)パーティションBLOB表については、「パーティションBLOB表」を参照してください。
各BLOBで表現されるネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のユーザー・データについて、各BLOBに含める場合はTRUE、各BLOBに含めない場合はFALSEを指定します。
各パーティションBLOBが生成後にデータベースにコミットされる場合はTRUE (デフォルト)、コミットされない場合はFALSEを指定します(この場合、1つ以上の明示的なコミット操作を実行する必要があります)。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
(将来使用するために予約されています。唯一許可されている値はFALSEであり、これがデフォルトです。)
マルチレベル・ネットワークのノード・レベル表を再生成する場合は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');
構文
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型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
使用上の注意
指定したフィーチャについて親フィーチャのフィーチャ・レイヤー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;
/
構文
SDO_NET.GET_CHILD_LINKS(
network IN VARCHAR2,
link_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;
説明
リンクの子リンクを戻します。
使用上の注意
ネットワーク階層の親ノードと子ノード、および親リンクと子リンクの詳細は、「ネットワークの階層」を参照してください。
例
次の例では、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)
構文
SDO_NET.GET_CHILD_NODES(
network IN VARCHAR2,
node_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;
説明
ノードの子ノードを戻します。
使用上の注意
ネットワーク階層の親ノードと子ノード、および親リンクと子リンクの詳細は、「ネットワークの階層」を参照してください。
例
次の例では、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)
構文
SDO_NET.GET_DANGLING_FEATURES(
feature_layer_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;
説明
フィーチャ・レイヤー内のダングリング・フィーチャの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;
/
構文
SDO_NET.GET_DANGLING_LINKS(
network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;
説明
任意のフィーチャ・レイヤー内のいずれのフィーチャからも参照されていないリンクを戻します。
使用上の注意
ネットワーク内のダングリング・リンクを削除するには、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;
/
構文
SDO_NET.GET_DANGLING_NODES(
network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;
説明
どのフィーチャ・レイヤー内のどのフィーチャによっても参照されていないノードを戻します。
使用上の注意
ネットワーク内のダングリング・ノードを削除するには、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;
/
構文
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型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
使用上の注意
フィーチャ要素をフィーチャに追加するには、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;
/
構文
SDO_NET.GET_FEATURE_LAYER_ID(
network_name IN VARCHAR2
feature_layer_name IN VARCHAR2
) RETURN NUMBER;
説明
指定したフィーチャ・レイヤーのフィーチャ・レイヤーIDを戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_FEATUREビュー内の、指定されたネットワークとフィーチャ・レイヤーの組合せのFEATURE_LAYER_ID列の値を戻します(「xxx_SDO_NETWORK_FEATUREビュー」の図5-19を参照)。
例
次の例では、指定したフィーチャ・レイヤーのフィーチャ・レイヤー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;
/
構文
SDO_NET.GET_FEATURES_ON_LINKS
feature_layer_id IN NUMBER,
link_ids IN SDO_NUMBER_ARRAY
) RETURN SDO_NUMBER_ARRAY;
説明
指定したリンクを参照するフィーチャ・レイヤー内のフィーチャの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;
/
構文
SDO_NET.GET_FEATURES_ON_NODES
feature_layer_id IN NUMBER,
node_ids IN SDO_NUMBER_ARRAY
) RETURN SDO_NUMBER_ARRAY;
説明
指定したノードを参照するフィーチャ・レイヤー内のフィーチャの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;
/
構文
SDO_NET.GET_GEOMETRY_TYPE(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
空間ネットワークのジオメトリ・タイプを戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのGEOMETRY_TYPE列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのジオメトリ・タイプを戻します。
SELECT SDO_NET.GET_GEOMETRY_TYPE('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_GEOMETRY_TYPE('ROADS_NETWORK')
--------------------------------------------------------------------------------
LRS_GEOMETRY
構文
SDO_NET.GET_IN_LINKS(
network IN VARCHAR2,
node_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;
説明
ノードへのインバウンド・リンクのリンク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)
構文
SDO_NET.GET_INVALID_LINKS(
network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;
説明
ネットワーク内の無効なリンクを戻します。
使用上の注意
このファンクションは、指定されたネットワーク内の無効なリンクについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。無効なリンクが存在しない場合、このファンクションはNULL値を戻します。
例
次の例では、SDO_PARTITIONEDネットワーク内の無効なリンクを戻します。
SELECT SDO_NET.GET_INVALID_LINKS('SDO_PARTITIONED') FROM DUAL;
構文
SDO_NET.GET_INVALID_NODES(
network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;
説明
ネットワーク内の無効なノードを戻します。
使用上の注意
このファンクションは、指定されたネットワーク内の無効なノードについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。無効なノードが存在しない場合、このファンクションはNULL値を戻します。
例
次の例では、SDO_PARTITIONEDネットワーク内の無効なノードを戻します。
SELECT SDO_NET.GET_INVALID_NODES('SDO_PARTITIONED') FROM DUAL;
構文
SDO_NET.GET_INVALID_PATHS(
network IN VARCHAR2
) RETURN SDO_NUMBER_ARRAY;
説明
ネットワーク内の無効なパスを戻します。
使用上の注意
このファンクションは、指定されたネットワーク内の無効なパスについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。無効なパスが存在しない場合、このファンクションはNULL値を戻します。
例
次の例では、SDO_PARTITIONEDネットワーク内の無効なパスを戻します。
SELECT SDO_NET.GET_INVALID_PATHS('SDO_PARTITIONED') FROM DUAL;
構文
SDO_NET.GET_ISOLATED_NODES( network IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
説明
ネットワーク内の孤立ノードを戻します。
使用上の注意
このファンクションは、指定されたネットワーク内の孤立ノードについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。孤立ノードが存在しない場合、このファンクションはNULL値を戻します。
ネットワークの孤立ノードの簡単な説明は、「ネットワーク・データ・モデル・グラフの概念」を参照してください。
例
次の例では、SDO_PARTITIONEDネットワーク内の孤立ノードを戻します。
SELECT SDO_NET.GET_ISOLATED_NODES('SDO_PARTITIONED') FROM DUAL;
構文
SDO_NET.GET_LINK_COST_COLUMN(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
ネットワークのリンク・コスト列の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_COST_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのリンク・コスト列の名前を戻します。
SELECT SDO_NET.GET_LINK_COST_COLUMN('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_LINK_COST_COLUMN('ROADS_NETWORK')
--------------------------------------------------------------------------------
COST
構文
SDO_NET.GET_LINK_DIRECTION( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークのリンクの方向を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_DIRECTION列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのリンクの方向を戻します。
SELECT SDO_NET.GET_LINK_DIRECTION('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_LINK_DIRECTION('ROADS_NETWORK')
--------------------------------------------------------------------------------
DIRECTED
構文
SDO_NET.GET_LINK_GEOM_COLUMN( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間ネットワークのリンク・ジオメトリ列の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのリンク・ジオメトリ列の名前を戻します。
SELECT SDO_NET.GET_LINK_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_LINK_GEOM_COLUMN('ROADS_NETWORK')
--------------------------------------------------------------------------------
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;
説明
空間ネットワーク内のリンクに関連付けられたジオメトリ全体またはジオメトリの一部を戻します。
パラメータ
ネットワーク名を指定します。
ジオメトリを戻すリンクのID番号を指定します。
戻されたジオメトリの開始点に使用されるリンクに沿った距離の割合を指定します。0から1.0までの数字として表します(たとえば、0.5は50パーセントです)。デフォルト値は0です(つまり、戻されたジオメトリの開始はリンクの開始点に関連付けられています)。
戻されたジオメトリの終了点に使用されるリンクに沿った距離の割合を指定します。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))
構文
SDO_NET.GET_LINK_TABLE_NAME( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークのリンク表の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLINK_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのリンク表の名前を戻します。
SELECT SDO_NET.GET_LINK_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_LINK_TABLE_NAME('ROADS_NETWORK')
--------------------------------------------------------------------------------
ROADS_LINKS
構文
SDO_NET.GET_LINKS_IN_PATH( network IN VARCHAR2, path_id IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
パスに含まれるリンクを戻します。
使用上の注意
リンクおよびパスの詳細は、「ネットワーク・データ・モデル・グラフの概念」を参照してください。
例
次の例では、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)
構文
SDO_NET.GET_LRS_GEOM_COLUMN( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間ネットワークのLRSジオメトリ列の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLRS_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのLRSジオメトリ列の名前を戻します。
SELECT SDO_NET.GET_LRS_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_LRS_GEOM_COLUMN('ROADS_NETWORK')
--------------------------------------------------------------------------------
ROAD_GEOM
構文
SDO_NET.GET_LRS_LINK_GEOMETRY( network IN VARCHAR2, link_id IN NUMBER ) RETURN SDO_GEOMETRY;
説明
空間LRSネットワーク内のリンクに関連付けられたLRSジオメトリを戻します。
使用上の注意
なし。
例
次の例では、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))
構文
SDO_NET.GET_LRS_NODE_GEOMETRY( network IN VARCHAR2, node_id IN NUMBER ) RETURN SDO_GEOMETRY;
説明
空間LRSネットワーク内のノードに関連付けられたLRSジオメトリを戻します。
使用上の注意
なし。
例
次の例では、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)
構文
SDO_NET.GET_LRS_TABLE_NAME( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間LRSネットワーク内のLRSジオメトリを含む表の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLRS_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のLRSジオメトリを含む表の名前を戻します。
SELECT SDO_NET.GET_LRS_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_LRS_TABLE_NAME('ROADS_NETWORK')
--------------------------------------------------------------------------------
ROADS
構文
SDO_NET.GET_NETWORK_TYPE( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワーク・タイプを戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNETWORK_TYPE列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークのネットワーク・タイプを戻します。
SELECT SDO_NET.GET_NETWORK_TYPE('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_NETWORK_TYPE('ROADS_NETWORK')
--------------------------------------------------------------------------------
Roadways
構文
SDO_NET.GET_NO_OF_HIERARCHY_LEVELS( network IN VARCHAR2 ) RETURN NUMBER;
説明
ネットワークの階層レベルの数を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNO_OF_HIERARCHY_LEVELS列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
ネットワーク階層については、「ネットワークの階層」を参照してください。
例
次の例では、ROADS_NETWORKという名前のネットワークの階層レベルの数を戻します。
SELECT SDO_NET.GET_NO_OF_HIERARCHY_LEVELS('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_NO_OF_HIERARCHY_LEVELS('ROADS_NETWORK')
---------------------------------------------------
1
構文
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;
説明
ネットワーク内のリンク数またはネットワーク内の任意の階層レベルでのリンク数を戻します。
使用上の注意
なし。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のリンク数を戻します。
SELECT SDO_NET.GET_NO_OF_LINKS('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_NO_OF_LINKS('ROADS_NETWORK')
----------------------------------------
10
構文
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;
説明
ネットワーク内のノード数またはネットワーク内の任意の階層レベルでのノード数を戻します。
使用上の注意
ノードおよび関連する概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のノード数を戻します。
SELECT SDO_NET.GET_NO_OF_NODES('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_NO_OF_NODES('ROADS_NETWORK')
----------------------------------------
8
構文
SDO_NET.GET_NODE_DEGREE( network IN VARCHAR2, node_id IN NUMBER ) RETURN NUMBER;
説明
ノードへのリンク数を戻します。
使用上の注意
ノードの度数および関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。
例
次の例では、ROADS_NETWORKという名前のネットワークに含まれる、ノードIDが3のノードへのリンク数を戻します。
SELECT SDO_NET.GET_NODE_DEGREE('ROADS_NETWORK', 3) FROM DUAL;
SDO_NET.GET_NODE_DEGREE('ROADS_NETWORK',3)
------------------------------------------
3
構文
SDO_NET.GET_NODE_GEOM_COLUMN( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間ネットワーク内のノードのジオメトリ列の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNODE_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のノードのジオメトリ列の名前を戻します。
SELECT SDO_NET.GET_NODE_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_NODE_GEOM_COLUMN('ROADS_NETWORK')
--------------------------------------------------------------------------------
NODE_GEOMETRY
構文
SDO_NET.GET_NODE_GEOMETRY( network IN VARCHAR2, node_id IN NUMBER ) RETURN SDO_GEOMETRY;
説明
空間ネットワーク内のノードに関連付けられたLRSジオメトリを戻します。
使用上の注意
なし。
例
次の例では、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)
構文
SDO_NET.GET_NODE_IN_DEGREE( network IN VARCHAR2, node_id IN NUMBER ) RETURN NUMBER;
説明
ノードへのインバウンド・リンク数を戻します。
使用上の注意
ノードの度数および関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。
例
次の例では、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
構文
SDO_NET.GET_NODE_OUT_DEGREE( network IN VARCHAR2, node_id IN NUMBER ) RETURN NUMBER;
説明
ノードからのアウトバウンド・リンク数を戻します。
使用上の注意
ノードの度数および関連するネットワーク・データ・モデル・グラフの概念については、「ネットワーク・データ・モデル・グラフの概念」を参照してください。
例
次の例では、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
構文
SDO_NET.GET_NODE_TABLE_NAME( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間ネットワーク内のノードを含む表の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのNODE_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のノードを含む表の名前を戻します。
SELECT SDO_NET.GET_NODE_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_NODE_TABLE_NAME('ROADS_NETWORK')
--------------------------------------------------------------------------------
ROADS_NODES
構文
SDO_NET.GET_OUT_LINKS( network IN VARCHAR2, node_id IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
ノードからのアウトバウンド・リンクのリンク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)
構文
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型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
使用上の注意
指定したフィーチャについて子フィーチャのフィーチャ・レイヤー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;
/
構文
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とリンク・レベルの指定した組合せの推定サイズ(バイト単位)を取得します。
パラメータ
ネットワーク名を指定します。
パーティションID番号を指定します。
リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、サイズに含める場合はTRUE、サイズに含めない場合はFALSE (デフォルト)を指定します。
各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
構文
SDO_NET.GET_PATH_GEOM_COLUMN( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間ネットワーク内のパスのジオメトリ列の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのPATH_GEOM_COLUMN列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のパスのジオメトリ列の名前を戻します。
SELECT SDO_NET.GET_PATH_GEOM_COLUMN('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_PATH_GEOM_COLUMN('ROADS_NETWORK')
--------------------------------------------------------------------------------
PATH_GEOMETRY
構文
SDO_NET.GET_PATH_TABLE_NAME( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
空間ネットワーク内のパスを含む表の名前を戻します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのPATH_TABLE_NAME列の値を戻します(「xxx_SDO_NETWORK_METADATAビュー」の表5-16を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のパスを含む表の名前を戻します。
SELECT SDO_NET.GET_PATH_TABLE_NAME('ROADS_NETWORK') FROM DUAL;
SDO_NET.GET_PATH_TABLE_NAME('ROADS_NETWORK')
--------------------------------------------------------------------------------
ROADS_PATHS
構文
SDO_NET.GET_PERCENTAGE( network IN VARCHAR2, link_id IN NUMBER, pt_geom IN SDO_GEOMETRY ) RETURN SDO_GEOMETRY;
説明
点ジオメトリの、リンクの線ストリング・ジオメトリに沿った距離の割合を戻します。
使用上の注意
このファンクションは、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
構文
SDO_NET.GET_PHANTOM_FEATURES( feature_layer_id IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
フィーチャ・レイヤー内のファントム・フィーチャの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;
/
構文
SDO_NET.GET_PT( network IN VARCHAR2, link_id IN NUMBER, percentage IN NUMBER ) RETURN SDO_GEOMETRY;
説明
リンクの線ストリング・ジオメトリに沿った、指定された割合の距離に存在する点ジオメトリを戻します。
パラメータ
使用上の注意
指定した点に対するリンク・ジオメトリに沿った割合を検出するには、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)
構文
SDO_NET.IS_HIERARCHICAL( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークに複数の階層レベルが存在する場合、文字列TRUEを戻します。ネットワークに複数の階層レベルが存在しない場合は、文字列FALSEを戻します。
使用上の注意
ネットワーク階層については、「ネットワークの階層」を参照してください。
例
次の例では、ROADS_NETWORKという名前のネットワークに複数の階層レベルが存在するかどうかを確認します。
SELECT SDO_NET.IS_HIERARCHICAL('ROADS_NETWORK') FROM DUAL;
SDO_NET.IS_HIERARCHICAL('ROADS_NETWORK')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.IS_LINK_IN_PATH( network IN VARCHAR2, path_id IN NUMBER, link_id IN NUMBER, ) RETURN VARCHAR2;
説明
指定されたリンクが指定されたパスに含まれている場合、文字列TRUEを戻します。指定されたリンクが指定されたパスに含まれていない場合は、文字列FALSEを戻します。
使用上の注意
このファンクションは、特定のリンクが特定のパスに含まれているかどうかを確認するために使用します。
例
次の例では、リンク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
構文
SDO_NET.IS_LOGICAL( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークが論理ネットワークである場合、文字列TRUEを戻します。ネットワークが論理ネットワークではない場合は、文字列FALSEを戻します。
使用上の注意
ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(「ネットワーク・データ・モデル・グラフの概念」を参照)。
例
次の例では、ROADS_NETWORKという名前のネットワークが論理ネットワークであるかどうかを確認します。
SELECT SDO_NET.IS_LOGICAL('ROADS_NETWORK') FROM DUAL;
SDO_NET.IS_LOGICAL('ROADS_NETWORK')
--------------------------------------------------------------------------------
FALSE
構文
SDO_NET.IS_NODE_IN_PATH( network IN VARCHAR2, path_id IN NUMBER, node_id IN NUMBER, ) RETURN VARCHAR2;
説明
指定されたノードが指定されたパスに含まれている場合、文字列TRUEを戻します。指定されたノードが指定されたパスに含まれていない場合は、文字列FALSEを戻します。
使用上の注意
このファンクションは、特定のノードが特定のパスに含まれているかどうかを確認するために使用します。
例
次の例では、ノード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
構文
SDO_NET.IS_SPATIAL( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークが空間ネットワークである場合、文字列TRUEを戻します。ネットワークが空間ネットワークではない場合は、文字列FALSEを戻します。
使用上の注意
ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(「ネットワーク・データ・モデル・グラフの概念」を参照)。
空間ネットワークの場合は、さらにSDO_NET.LRS_GEOMETRY_NETWORK、SDO_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
構文
SDO_NET.LOAD_CONFIG( file_directory IN VARCHAR2, file_name IN VARCHAR2);
説明
ロード・オンデマンドのJavaストアド・プロシージャの構成を、指定したXMLファイルからロードまたはリロードします。ロード・オンデマンド構成は、主にパーティションBLOBの変換およびパーティション・キャッシュの構成に使用されます。(Javaストアド・プロシージャは、パッケージoracle.spatial.network.lodのクラスです。)
パラメータ
使用上の注意
デフォルトでは、ロード・オンデマンド用に構成されています。このプロシージャは、デフォルトの構成を変更する必要がある場合に使用します。
パーティション・キャッシュを含むロード・オンデマンド環境の構成については、「パーティション・キャッシュの構成」を参照してください。
例
次の例では、指定したXMLファイルからロード・オンデマンド構成をロードします。
EXECUTE SDO_NET.LOAD_CONFIG('WORK_DIR', 'netlodcfg.xml');
構文
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プロシージャを使用します。
パラメータ
ネットワーク名を指定します。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
パーティション・サイズの許可された許容差(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);
構文
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);
説明
べき乗則(スケールフリーとも呼ばれる)の論理ネットワークをパーティション化し、情報をパーティション表に格納します。(べき乗則ネットワークでは、ノードの度数の値に、べき乗則情報が含まれます。)
パラメータ
ネットワーク名を指定します。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
part_size_tolerance値が0より大きい場合は、各パーティションに含まれるノードの最大数が増えます(このパラメータの説明を参照)。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、べき乗則の論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
パーティション・サイズの許可された許容差(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');
構文
SDO_NET.LRS_GEOMETRY_NETWORK( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークがLRSジオメトリを含む空間ネットワークである場合、文字列TRUEを戻します。ネットワークがLRSジオメトリを含む空間ネットワークではない場合は、文字列FALSEを戻します。
使用上の注意
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
構文
SDO_NET.NETWORK_EXISTS( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークが存在する場合、文字列TRUEを戻します。ネットワークが存在しない場合は、文字列FALSEを戻します。
使用上の注意
(SDO_NET.DROP_NETWORKプロシージャを使用して)ネットワークを削除すると、そのネットワークは存在しなくなります。
例
次の例では、ROADS_NETWORKという名前のネットワークが存在するかどうかを確認します。
SELECT SDO_NET.NETWORK_EXISTS('ROADS_NETWORK') FROM DUAL;
SDO_NET.NETWORK_EXISTS('ROADS_NETWORK')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.POST_XML( url IN VARCHAR2, request IN XMLTYPE ) RETURN XMLTYPE;
説明
XMLリクエストをURLに送信し、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;
/
構文
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列にロードします。
パラメータ
使用上の注意
このプロシージャをコールする前に、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;
/
構文
SDO_NET.SDO_GEOMETRY_NETWORK( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークがSDOジオメトリ(メジャー情報を持たない空間ジオメトリ)を含む空間ネットワークである場合、文字列TRUEを戻します。ネットワークがSDOジオメトリを含む空間ネットワークではない場合は、文字列FALSEを戻します。
使用上の注意
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
構文
SDO_NET.SET_LOGGING_LEVEL( level IN NUMBER);
説明
ネットワーク操作に対して表示されるメッセージについて、重大度の最低レベルを設定します。
使用上の注意
指定されたロギング・レベル以上のすべてのメッセージが書き込まれます。ロギング・レベルの最高レベルから最低レベルまでを次に示します。
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);
構文
SDO_NET.SET_MAX_JAVA_HEAP_SIZE( bytes IN NUMBER);
説明
Oracle Java仮想マシンで実行するアプリケーション用の最大Javaヒープ・サイズを設定します。
使用上の注意
java.lang.OutOfMemoryError例外が発生した場合は、このプロシージャを使用して、最大ヒープ・サイズを増やすことができます。
システムの上限より大きな値を指定すると、システムの上限値が使用されます。
例
次の例では、最大Javaヒープ・サイズを536870912(512MB)に設定します。
EXECUTE SDO_NET.SET_MAX_JAVA_HEAP_SIZE(536870912);
構文
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);
説明
空間ネットワークをパーティション化し、情報をパーティション表に格納します。
パラメータ
ネットワーク名を指定します。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、「パーティション表」を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
パーティション化を実行するネットワーク・リンク・レベル(デフォルトは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');
構文
SDO_NET.TOPO_GEOMETRY_NETWORK( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークがSDO_TOPO_GEOMETRY(トポロジ・ジオメトリ)オブジェクトを含む空間ネットワークである場合、文字列TRUEを戻します。ネットワークがSDO_TOPO_GEOMETRYオブジェクトを含む空間ネットワークではない場合は、文字列FALSEを戻します。
使用上の注意
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
構文
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);
説明
フィーチャ・レイヤー内のフィーチャを更新します。
パラメータ
フィーチャを更新するフィーチャ・レイヤーのIDを指定します。
更新されるフィーチャのIDを指定します。
既存のフィーチャ要素に追加する、フィーチャのフィーチャ要素を指定します。このパラメータがNULLの場合、既存のフィーチャ要素は変更されません。このパラメータが空の場合、既存のフィーチャ要素は削除されます。(SDO_NET_FEAT_ELEM_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
既存の子フィーチャに追加する、フィーチャの子フィーチャを指定します。このパラメータがNULLの場合、既存の子フィーチャは変更されません。このパラメータが空の場合、子フィーチャとの、このフィーチャの既存の親関係は削除されます。(SDO_NET_LAYER_FEAT_ARRAY型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
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;
/
構文
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);
説明
フィーチャ要素を更新します。
パラメータ
フィーチャのフィーチャ・レイヤーのIDを指定します。
フィーチャのIDです。
更新されるフィーチャ要素の順序番号を指定します。
指定したフィーチャ要素を置換するフィーチャ要素の定義を指定します。(SDO_NET_FEAT_ELEM型の詳細は、「フィーチャ・モデリングに使用するデータ型」を参照してください。)
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;
/
構文
SDO_NET.VALIDATE_LINK_SCHEMA( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワーク内のリンクに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のリンクに関連するメタデータが有効でない場合は、文字列FALSEを戻します。
使用上の注意
このファンクションは、空間ネットワークの表名、ジオメトリ列およびコスト列、LRSネットワークのメジャー関連の情報、トポロジ・ネットワークのトポロジ関連の情報、および階層ネットワークの階層関連の情報が有効かどうかを確認します。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のリンクに関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_LINK_SCHEMA('ROADS_NETWORK') FROM DUAL;
SDO_NET.VALIDATE_LINK_SCHEMA('ROADS_NETWORK')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.VALIDATE_LRS_SCHEMA( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワークのLRS情報に関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワークのLRS情報に関連するメタデータが有効でない場合は、文字列FALSEを戻します。
使用上の注意
なし。
例
次の例では、ROADS_NETWORKという名前のネットワークのLRS情報に関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_LRS_SCHEMA('ROADS_NETWORK') FROM DUAL;
SDO_NET.VALIDATE_LRS_SCHEMA('ROADS_NETWORK')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.VALIDATE_NETWORK( network IN VARCHAR2, check_data IN VARCHAR2 DEFAULT 'FALSE' ) RETURN VARCHAR2;
説明
ネットワークが有効な場合、文字列TRUEを戻します。ネットワークが有効でない場合は、文字列FALSEを戻します。
パラメータ
使用上の注意
このファンクションは、ネットワークのメタデータおよび適用されるネットワーク・スキーマ構造(リンク、ノード、パス、サブパス、LRS)を確認します。ネットワーク・データについて基本的な参照整合性の確認を行い、オプションで詳細な確認を行います。エラーが検出されると、このファンクションは文字列FALSEを戻します。
このファンクションでは、次の項目が確認されます。
ネットワークが存在します。
ネットワークのノード表およびリンク表が存在し、それらの表が必要な列を含んでいる。
ノード表に各リンクの開始ノードおよび終了ノードが存在する。
LRSジオメトリ・ネットワークの場合、LRS表が存在し、必要な列を含んでいる。
空間ネットワークの場合、ノードおよびパスのジオメトリの列が存在し、それらの列に空間索引が定義されている。
check_dataがTRUEの場合、ネットワーク・データについて詳細な参照整合性の確認が行われます。特にネットワークが大規模な場合は、この確認に時間がかかります。
例
次の例では、LOG_NET1という名前のネットワークを検証します。
SELECT SDO_NET.VALIDATE_NETWORK('LOG_NET1') FROM DUAL;
SDO_NET.VALIDATE_NETWORK('LOG_NET1')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.VALIDATE_NODE_SCHEMA( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワーク内のノードに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のノードに関連するメタデータが有効でない場合は、文字列FALSEを戻します。
使用上の注意
このファンクションは、空間ネットワークの表名、ジオメトリ列およびコスト列、LRSネットワークのメジャー関連の情報、トポロジ・ネットワークのトポロジ関連の情報、および階層ネットワークの階層関連の情報が有効かどうかを確認します。
例
次の例では、LOG_NET1という名前のネットワーク内のノードに関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_NODE_SCHEMA('LOG_NET1') FROM DUAL;
SDO_NET.VALIDATE_NODE_SCHEMA('LOG_NET1')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.VALIDATE_PARTITION_SCHEMA( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワーク内のパーティションに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のパーティションに関連するメタデータが有効でない場合は、文字列FALSEを戻します。
使用上の注意
パーティション表の情報が有効かどうかを確認します(「パーティション表」を参照)。
例
次の例では、SDO_PARTITIONEDという名前のネットワーク内のパーティションに関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_PARTITION_SCHEMA('SDO_PARTITIONED') FROM DUAL;
SDO_NET.VALIDATE_PARTITION_SCHEMA('SDO_PARTITIONED')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.VALIDATE_PATH_SCHEMA( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワーク内のパスに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のパスに関連するメタデータが有効でない場合は、文字列FALSEを戻します。
使用上の注意
このファンクションは、空間ネットワークの表名、ジオメトリ列およびコスト列、LRSネットワークのメジャー関連の情報、トポロジ・ネットワークのトポロジ関連の情報、および階層ネットワークの階層関連の情報が有効かどうかを確認します。
例
次の例では、ROADS_NETWORKという名前のネットワーク内のパスに関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_PATH_SCHEMA('ROADS_NETWORK') FROM DUAL;
SDO_NET.VALIDATE_PATH_SCHEMA('ROADS_NETWORK')
--------------------------------------------------------------------------------
TRUE
構文
SDO_NET.VALIDATE_SUBPATH_SCHEMA( network IN VARCHAR2 ) RETURN VARCHAR2;
説明
ネットワーク内のサブパスに関連するメタデータが有効な場合、文字列TRUEを戻します。ネットワーク内のサブパスに関連するメタデータが有効でない場合は、文字列FALSEを戻します。
使用上の注意
サブパス表の情報が有効かどうかを確認します(「サブパス表」を参照)。
例
次の例では、MY_NETWORKという名前のネットワーク内のサブパスに関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_SUBPATH_SCHEMA('MY_NETWORK') FROM DUAL;
SDO_NET.VALIDATE_SUBPATH_SCHEMA('MY_NETWORK')
--------------------------------------------------------------------------------
TRUE