MDSYS.SDO_NETパッケージには、ネットワーク管理を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章で説明するサブプログラムを使用する場合は、概念を理解しておく必要があります(第5章を参照)。
論理カテゴリに分類されたサブプログラムのリストは、5.11.1項を参照してください。この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
構文
SDO_NET.COMPUTE_PATH_GEOMETRY(
network IN VARCHAR2,
path_id IN NUMBER,
tolerance IN NUMBER
) RETURN SDO_GEOMETRY;
説明
パスの空間ジオメトリを戻します。
パラメータ
ネットワーク名を指定します。
パスID番号を指定します。
ネットワーク内のジオメトリに関連付けられた許容差を指定します。(許容差については、『Oracle Spatial開発者ガイド』の第1章を参照してください。)この値は、ネットワークのリンク表およびノード表のジオメトリの許容差と一致している必要があります。
使用上の注意
このファンクションは、指定されたパスについて、SDO_GEOMETRYオブジェクトを計算して戻します。
このファンクションおよびSDO_NET_MEM.PATH.COMPUTE_GEOMETRYプロシージャ(第6章を参照)は両方ともパスのジオメトリを計算しますが、次のような相違点があります。
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);
説明
メタデータ表を含む、ネットワークのコピーを作成します。
パラメータ
コピーするネットワークの名前を指定します。
source_network
のコピーとして作成するネットワークの名前を指定します。
使用上の注意
このプロシージャは、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に、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);
説明
ネットワークのリンク表を作成します。
パラメータ
リンク表の名前を指定します。
空間ネットワークのリンクのジオメトリ・タイプを示す値を指定します。非LRSのSDO_GEOMETRYオブジェクトの場合はSDO_GEOMETRY
、LRSのSDO_GEOMETRYオブジェクトの場合はLRS_GEOMETRY
、SDO_TOPO_GEOMETRYオブジェクトの場合はTOPO_GEOMETRY
です。
空間ネットワーク内のリンクに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
リンクに関連付けるコスト値を含む列の名前を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
使用上の注意
リンク表については、5.9.2項を参照してください。
例
次の例では、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);
または
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);
説明
論理ネットワークを作成してすべての必要な表を作成し、そのネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
ブール値を指定します。リンクが有向リンクである場合はTRUE
、無向リンクの場合(有向リンクでない場合)はFALSE
を指定します。
ブール値を指定します。TRUE
を指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE
(デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
作成するノード表の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のコスト列の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のコスト列の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
作成するパスリンク表の名前を指定します。(パスリンク表については、5.9.4項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに論理ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびコスト列の名前を指定できます。
このプロシージャのかわりに、SDO_NET.CREATE_LOGICAL_NETWORKプロシージャを使用してネットワークを作成し、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);
または
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,
is_complex IN BOOLEAN DEFAULT FALSE);
説明
LRSのSDO_GEOMETRYオブジェクトを含む空間ネットワークを作成してすべての必要な表を作成し、ネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
LRSジオメトリ列を含む表の名前を指定します。
LRSジオメトリ(線形参照のメジャー情報を含むSDO_GEOMETRYオブジェクト)を含むlrs_table_name
の列の名前を指定します。
ブール値を指定します。リンクが有向リンクである場合はTRUE
、無向リンクの場合(有向リンクでない場合)はFALSE
を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
ブール値を指定します。TRUE
を指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE
(デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
将来使用するために予約されています。今回のリリースでは、無視されます。
作成するノード表の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のコスト列の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のコスト列の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
パス表のジオメトリ列の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
作成するパスリンク表の名前を指定します。(パスリンク表については、5.9.4項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときにLRSジオメトリの空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびジオメトリ列名とコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびジオメトリ列とコスト列の名前を指定できます。
このプロシージャのかわりに、SDO_NET.CREATE_LRS_NETWORKプロシージャを使用してネットワークを作成し、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);
説明
Oracle Spatialの線形参照システム(LRS)・ジオメトリを格納するための表を作成します。
パラメータ
geom_column
で指定したジオメトリ列を含む表の名前を指定します。
ジオメトリ・オブジェクトを含む(SDO_GEOMETRY型の)列の名前を指定します。
使用上の注意
このプロシージャは、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);
または
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
です。
空間ネットワーク内のノードに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
ノードに関連付けるコスト値を含む列の名前を指定します。
ノードに関連付けるパーティションID値を含む列の名前を指定します。
ネットワーク内のノードの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
将来使用するために予約されています。今回のリリースでは、無視されます。
<network-name>_NODE$表(5.9.1項を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャには、2つの形式があります。1つはpartition_column
パラメータが含まれておらず、1つはpartition_column
パラメータが含まれています。
ノード表については、5.9.1項を参照してください。
例
次の例では、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);
説明
パーティション表を作成します。
パラメータ
パーティション表の名前を指定します。
使用上の注意
パーティション表については、5.9.6項を参照してください。
ロード・オンデマンド方式を使用した分析を実行するための、パーティション化されたネットワークの使用方法については、5.7項を参照してください。
例
次の例では、MY_PART_TABという名前のパーティション表を作成します。
EXECUTE SDO_NET.CREATE_PARTITION_TABLE('MY_PART_TAB');
構文
SDO_NET.CREATE_PATH_LINK_TABLE(
table_name IN VARCHAR2);
説明
パスリンク表(パス表の各パスに各リンクの行を持つ表)を作成します。
パラメータ
パスリンク表の名前を指定します。
使用上の注意
パスリンク表については、5.9.4項を参照してください。
ネットワークでパスを使用するには、パスリンク表を移入する必要があります。
例
次の例では、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);
説明
パス表を作成します。
パラメータ
パス表の名前を指定します。
空間ネットワークのパスに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
使用上の注意
パス表については、5.9.3項を参照してください。
ネットワークでパスを使用するには、パス表の作成後に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);
または
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);
説明
非LRSのSDO_GEOMETRYオブジェクトを含む空間ネットワークを作成してすべての必要な表を作成し、ネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
ブール値を指定します。リンクが有向リンクである場合はTRUE
、無向リンクの場合(有向リンクでない場合)はFALSE
を指定します。
ブール値を指定します。TRUE
を指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE
(デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
作成するノード表の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のジオメトリ列の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
ノード表のコスト列の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のジオメトリ列の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
リンク表のコスト列の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
パス表のジオメトリ列の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
作成するパスリンク表の名前を指定します。(パスリンク表については、5.9.4項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびジオメトリ列名とコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびジオメトリ列とコスト列の名前を指定できます。
このプロシージャのかわりに、SDO_NET.CREATE_SDO_NETWORKプロシージャを使用してネットワークを作成し、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_PATH_TABLE(
table_name IN VARCHAR2,
geom_column IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
説明
サブパス表を作成します。
パラメータ
サブパス表の名前を指定します。
空間ネットワークのサブパスに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
サブパス表(5.9.1項を参照)を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
サブパス表については、5.9.5項を参照してください。
ネットワークでサブパスを使用するには、1つ以上のパス表およびそれに関連するパスリンク表を作成する必要があります。
例
次の例では、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);
または
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);
説明
SDO_TOPO_GEOMETRYオブジェクトを含む空間トポロジ・ネットワークを作成してすべての必要な表を作成し、そのネットワークのメタデータを更新します。
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
ブール値を指定します。リンクが有向リンクである場合はTRUE
、無向リンクの場合(有向リンクでない場合)はFALSE
を指定します。
ブール値を指定します。TRUE
を指定した場合、COSTという名前の列が<network-name>_NODE$表に含まれます。FALSE
(デフォルト)を指定した場合、COSTという名前の列は<network-name>_NODE$表に含まれません。
作成するノード表の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_NODE$という名前のノード表が作成されます。
ノード表のコスト列の名前を指定します。(ノード表については、5.9.1項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するリンク表の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_LINK$という名前のリンク表が作成されます。
リンク表のコスト列の名前を指定します。(リンク表については、5.9.2項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はCOSTになります。
作成するパス表の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PATH$という名前のパス表が作成されます。
パス表のジオメトリ列の名前を指定します。(パス表については、5.9.3項を参照してください。)このパラメータを指定しない形式を使用した場合、ジオメトリ列の名前はGEOMETRYになります。
作成するパスリンク表の名前を指定します。(パスリンク表については、5.9.4項を参照してください。)このパラメータを指定しない形式を使用した場合、<network-name>_PLINK$という名前のパスリンク表が作成されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。ノード表およびリンク表に、SDO_TOPO_GEOMETRY型のTOPO_GEOMETRYという名前のトポロジ・ジオメトリ列が含まれます。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには2つの形式があります。簡単な方の形式では、表名およびジオメトリ列名とコスト列名にデフォルト値を使用して表を作成します。もう一方の形式では、表およびジオメトリ列とコスト列の名前を指定できます。
このプロシージャのかわりに、SDO_NET.CREATE_TOPO_NETWORKプロシージャを使用してネットワークを作成し、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_LINK(
network IN VARCHAR2,
link_id IN NUMBER);
説明
リンクおよびすべての依存するネットワーク要素を削除します。
パラメータ
ネットワーク名を指定します。
削除するリンクのIDを指定します。
使用上の注意
このプロシージャは、指定したリンクをリンク表(5.9.2項を参照)から削除して、このリンクに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。
例
次の例では、SDO_NET2ネットワーク内のリンクIDが1のリンクを削除します。
SELECT SDO_NET.DELETE_LINK('SDO_NET2', 1);
構文
SDO_NET.DELETE_NODE(
network IN VARCHAR2,
node_id IN NUMBER);
説明
ノードおよびすべての依存するネットワーク要素を削除します。
パラメータ
ネットワーク名を指定します。
削除するノードのIDを指定します。
使用上の注意
このプロシージャは、指定したノードをノード表(5.9.1項を参照)から削除して、このノードに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したノードがリンク定義に含まれている場合は、それらのリンクが削除されます。また、削除されるリンクがパスおよびサブパスに含まれていると、それらのパスおよびサブパスも削除されます。
例
次の例では、SDO_NET2ネットワーク内のノードIDが1のノードを削除します。
SELECT SDO_NET.DELETE_NODE('SDO_NET2', 1);
構文
SDO_NET.DELETE_PATH(
network IN VARCHAR2,
path_id IN NUMBER);
説明
パスおよびすべての依存するネットワーク要素を削除します。
パラメータ
ネットワーク名を指定します。
削除するパスのIDを指定します。
使用上の注意
このプロシージャは、指定したパスをパス表(5.9.3項を参照)から削除して、このパスに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したパスにサブパスが含まれている場合は、それらのサブパスも削除されます。
例
次の例では、SDO_NET2ネットワーク内のパスIDが1のパスを削除します。
SELECT SDO_NET.DELETE_PATH('SDO_NET2', 1);
構文
SDO_NET.DELETE_SUBPATH(
network IN VARCHAR2,
path_id IN NUMBER);
説明
サブパスを削除します。
パラメータ
ネットワーク名を指定します。
削除するパスのIDを指定します。
使用上の注意
このプロシージャは、指定したサブパスをパス表(5.9.3項を参照)から削除します。サブパス定義に依存している他の要素がないため、このプロシージャでは、他のネットワーク要素は削除されません。
例
次の例では、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ビュー(5.10.2項を参照)から該当する制約の行を削除します。
パラメータ
ネットワーク制約の名前を指定します。USER_SDO_NETWORK_CONSTRAINTSビューのCONSTRAINT列の値を一致させる必要があります。
使用上の注意
このプロシージャは、SDO_NET.REGISTER_CONSTRAINTプロシージャなどで、すでに有効化されているネットワーク制約を無効にする場合に使用します。ネットワーク制約の詳細は、5.6項を参照してください。
このプロシージャの動作は、クライアント側のJava APIに含まれるNetworkManager
クラス(5.11.2項を参照)のderegisterConstraint
メソッドを使用する場合に似ています。
例
次の例では、GivenProhibitedTurn
という名前のネットワーク制約を登録解除(無効化)します。
EXECUTE SDO_NET.DEREGISTER_CONSTRAINT('GivenProhibitedTurn');
構文
SDO_NET.DROP_NETWORK(
network IN VARCHAR2);
説明
ネットワークを削除します。
パラメータ
削除するネットワークの名前を指定します。
使用上の注意
このプロシージャは、ネットワークに関連付けられたノード表、リンク表およびパス表と、そのネットワークのメタデータも削除します。
例
次の例では、ROADS_NETWORK
という名前のネットワークを削除します。
EXECUTE SDO_NET.DROP_NETWORK('ROADS_NETWORK');
構文
SDO_NET.FIND_CONNECTED_COMPONENTS(
network IN VARCHAR2,
link_level IN NUMBER,
component_table_name IN VARCHAR2,
log_loc IN VARCHAR2,
log_file IN VARCHAR2,
open_mode IN VARCHAR2);
説明
ネットワーク内で指定したリンク・レベルに接続されているすべてのコンポーネントを検索し、接続されているコンポーネントの表にその情報を格納します。
パラメータ
ネットワーク名を指定します。
接続されているコンポーネントを検索するためのリンク・レベルを指定します。リンク・レベルは、リンクの優先順位です。ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成される、接続されているコンポーネントの表の名前を指定します。(指定した名前の表がすでに存在する場合は、新しい表に置換されます。)接続されているコンポーネントの表については、5.9.8項を参照してください。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す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_PARTITION_BLOB(
network IN VARCHAR2,
link_level IN NUMBER,
partition_id IN VARCHAR2,
include_user_data IN BOOLEAN,
log_loc IN VARCHAR2,
log_file IN VARCHAR2,
open_mode IN VARCHAR2);
説明
ネットワーク内の指定のリンク・レベルに関連付けられた指定のパーティションに対して、1つのバイナリ・ラージ・オブジェクト(BLOB)表現を生成し、その情報を既存のパーティションBLOB表に格納します。
パラメータ
ネットワーク名を指定します。
BLOBに含まれるリンクのリンク・レベルを指定します。
パーティションID番号を指定します。リンク・レベルとパーティションIDの指定した組合せに関連付けられたネットワーク要素は、生成されたBLOBに含まれています。
各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、BLOBに含める場合はTRUE
、BLOBに含めない場合はFALSE
を指定します。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
使用上の注意
このプロシージャは、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を追加または置換します。また、ネットワーク要素に関連付けられたすべてのユーザー・データも格納します。操作に関する情報は、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,
partition_blob_table_name IN VARCHAR2,
include_user_data IN BOOLEAN,
log_loc IN VARCHAR2,
log_file IN VARCHAR2,
open_mode IN VARCHAR2);
説明
ネットワーク内の指定のリンク・レベルに関連付けられたパーティションに対して、バイナリ・ラージ・オブジェクト(BLOB)表現を生成し、その情報をパーティションBLOB表に格納します。
パラメータ
ネットワーク名を指定します。
各BLOBに含まれるリンクのリンク・レベルを指定します。リンク・レベルは、リンクの優先順位です。ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成されるパーティションBLOB表の名前を指定します。(指定した名前の表がすでに存在する場合は、新しい表に置換されます。)パーティションBLOB表については、5.9.7項を参照してください。
各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、各BLOBに含める場合はTRUE
、各BLOBに含めない場合はFALSE
を指定します。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
使用上の注意
パーティションBLOBを生成すると、特に大規模なネットワークの場合には、ネットワーク分析の多くの操作でパフォーマンスが向上します。
ネットワークがパーティション化されていない場合、このプロシージャは、ネットワーク全体を表す1つのBLOBを生成します。
このプロシージャを、リンク・レベルとパーティションIDの指定した組合せに対して単一のBLOBを再生成し、既存のパーティションBLOB表に情報を追加するSDO_NET.GENERATE_PARTITION_BLOBと混同しないように注意してください。
例
次の例では、SDO_PARTITIONEDネットワーク内にリンク・レベル1のパーティションBLOBを生成し、SDO_PARTITIONED_PART_BLOB_TAB表を作成または更新します。また、ネットワーク要素に関連付けられたすべてのユーザー・データも格納します。操作に関する情報は、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_LINKS(
network IN VARCHAR2,
link_id IN NUMBER
) RETURN SDO_NUMBER_ARRAY;
説明
リンクの子リンクを戻します。
パラメータ
ネットワーク名を指定します。
子リンクを戻すリンクのIDを指定します。
使用上の注意
ネットワーク階層の親ノードと子ノード、および親リンクと子リンクの詳細は、5.5項を参照してください。
例
次の例では、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;
説明
ノードの子ノードを戻します。
パラメータ
ネットワーク名を指定します。
子ノードを戻すノードのIDを指定します。
使用上の注意
ネットワーク階層の親ノードと子ノード、および親リンクと子リンクの詳細は、5.5項を参照してください。
例
次の例では、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_GEOMETRY_TYPE(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
空間ネットワークのジオメトリ・タイプを戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのGEOMETRY_TYPE列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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番号の配列を戻します。
パラメータ
ネットワーク名を指定します。
インバウンド・リンクの配列を戻すノードのIDを指定します。
使用上の注意
インバウンド・リンクおよび関連するネットワーク・データ・モデルの概念については、5.3項を参照してください。
例
次の例では、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値を戻します。
ネットワーク内の孤立ノードの簡単な説明は、5.3項を参照してください。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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
) RETURN SDO_GEOMETRY;
説明
空間ネットワーク内のリンクに関連付けられたジオメトリを戻します。
パラメータ
ネットワーク名を指定します。
ジオメトリを戻すリンクのID番号を指定します。
使用上の注意
なし
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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;
説明
パスに含まれるリンクを戻します。
パラメータ
ネットワーク名を指定します。
リンクを戻すパスのIDを指定します。
使用上の注意
リンクおよびパスの説明は、5.3項を参照してください。
例
次の例では、XYZ_NETWORK
ネットワーク内のパスに含まれる、パスIDが1のリンクのリンクID値を戻します。
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_LRS_GEOM_COLUMN(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
空間ネットワークのLRSジオメトリ列の名前を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLRS_GEOM_COLUMN列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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ジオメトリを戻します。
パラメータ
ネットワーク名を指定します。
ジオメトリを戻すリンクの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))
構文
SDO_NET.GET_LRS_NODE_GEOMETRY(
network IN VARCHAR2,
node_id IN NUMBER
) RETURN SDO_GEOMETRY;
説明
空間LRSネットワーク内のノードに関連付けられたLRSジオメトリを戻します。
パラメータ
ネットワーク名を指定します。
ジオメトリを戻すノードの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)
構文
SDO_NET.GET_LRS_TABLE_NAME(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
空間LRSネットワーク内のLRSジオメトリを含む表の名前を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
このファンクションは、USER_SDO_NETWORK_METADATAビュー内の、指定されたネットワークのLRS_TABLE_NAME列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
ネットワーク階層については、5.5項を参照してください。
例
次の例では、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;
説明
ネットワーク内のノード数またはネットワーク内の任意の階層レベルでのノード数を戻します。
パラメータ
ネットワーク名を指定します。
ノード数を戻す階層レベルの番号を指定します。
使用上の注意
ノードおよび関連する概念については、5.3項を参照してください。
例
次の例では、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;
説明
ノードへのリンク数を戻します。
パラメータ
ネットワーク名を指定します。
リンク数を戻すノードのノードIDを指定します。
使用上の注意
ノードの度数および関連するネットワーク・データ・モデルの概念については、5.3項を参照してください。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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ジオメトリを戻します。
パラメータ
ネットワーク名を指定します。
ジオメトリを戻すノードの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)
構文
SDO_NET.GET_NODE_IN_DEGREE(
network IN VARCHAR2,
node_id IN NUMBER
) RETURN NUMBER;
説明
ノードへのインバウンド・リンク数を戻します。
パラメータ
ネットワーク名を指定します。
インバウンド・リンク数を戻すノードのノードIDを指定します。
使用上の注意
ノードの度数および関連するネットワーク・データ・モデルの概念については、5.3項を参照してください。
例
次の例では、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;
説明
ノードからのアウトバウンド・リンク数を戻します。
パラメータ
ネットワーク名を指定します。
アウトバウンド・リンク数を戻すノードのノードIDを指定します。
使用上の注意
ノードの度数および関連するネットワーク・データ・モデルの概念については、5.3項を参照してください。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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番号の配列を戻します。
パラメータ
ネットワーク名を指定します。
アウトバウンド・リンクの配列を戻すノードのIDを指定します。
使用上の注意
アウトバウンド・リンクおよび関連するネットワーク・データ・モデルの概念については、5.3項を参照してください。
例
次の例では、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_PARTITION_SIZE(
network IN VARCHAR2,
partition_id IN VARCHAR2,
link_level IN NUMBER,
include_user_data IN VARCHAR2,
include_spatial_data IN VARCHAR2) RETURN NUMBER;
説明
パーティションIDとリンク・レベルの指定した組合せの推定サイズ(バイト単位)を取得します。
パラメータ
ネットワーク名を指定します。
パーティションID番号を指定します。
リンク・レベルを指定します。
各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、サイズに含める場合はTRUE
、サイズに含めない場合はFALSE
を指定します。
各BLOBで表現されるネットワーク要素に関連付けられた空間ジオメトリの定義について、サイズに含める場合はTRUE
、サイズに含めない場合はFALSE
を指定します。
使用上の注意
戻されるネットワーク・パーティションのサイズは、おおまかな推定であり、Java仮想マシンおよびガベージ・コレクションによって変動する場合があります。
ロード・オンデマンド方式を使用した分析を実行するための、パーティション化されたネットワークの使用方法については、5.7項を参照してください。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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列の値を戻します(5.10.1項の表5-9を参照)。
例
次の例では、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.IS_HIERARCHICAL(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
ネットワークに複数の階層レベルが存在する場合、文字列TRUE
を戻します。ネットワークに複数の階層レベルが存在しない場合は、文字列FALSE
を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
ネットワーク階層については、5.5項を参照してください。
例
次の例では、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番号を指定します。
リンクの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
構文
SDO_NET.IS_LOGICAL(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
ネットワークが論理ネットワークである場合、文字列TRUE
を戻します。ネットワークが論理ネットワークではない場合は、文字列FALSE
を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(5.3項を参照)。
例
次の例では、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,
link_id IN NUMBER,
) RETURN VARCHAR2;
説明
指定されたノードが指定されたパスに含まれている場合、文字列TRUE
を戻します。指定されたノードが指定されたパスに含まれていない場合は、文字列FALSE
を戻します。
パラメータ
ネットワーク名を指定します。
パスの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
構文
SDO_NET.IS_SPATIAL(
network IN VARCHAR2
) RETURN VARCHAR2;
説明
ネットワークが空間ネットワークである場合、文字列TRUE
を戻します。ネットワークが空間ネットワークではない場合は、文字列FALSE
を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(5.3項を参照)。
空間ネットワークの場合は、さらに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);
説明
ロード・オンデマンド構成(主にパーティション・キャッシュ構成)を、指定したXMLファイルからロードまたはリロードします。
パラメータ
XMLファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
ロードする情報を含むXMLファイルの名前を指定します。
使用上の注意
デフォルトでは、ロード・オンデマンド用に構成されています。このプロシージャは、デフォルトの構成を変更する必要がある場合に使用します。
パーティション・キャッシュを含むロード・オンデマンド環境の構成については、5.7.3項を参照してください。
例
次の例では、指定したXMLファイルからロード・オンデマンド構成をロードします。
EXECUTE SDO_NET.LOAD_CONFIG('WORK_DIR', 'netlodcfg.xml');
構文
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ビューについては、5.10.1項を参照してください。)
例
次の例では、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.REGISTER_CONSTRAINT(
constraint_name IN VARCHAR2,
class_name IN VARCHAR2,
directory_name IN VARCHAR2,
description IN VARCHAR2);
説明
指定したネットワーク制約用にコンパイルしたJavaコードをデータベース内のJavaクラス・リポジトリにロードし、クラス名をUSER_SDO_NETWORK_CONSTRAINTSビュー(5.10.2項を参照)のCLASS列にロードします。
パラメータ
ネットワーク制約の名前を指定します。
ネットワーク制約を実装するクラスの完全修飾名(パッケージの名前を含む)を指定します。
ネットワーク制約をコンパイルしたときに作成されたクラス・ファイルの場所を特定する、ディレクトリ・オブジェクト(SQL文のCREATE DIRECTORYで作成)の名前を指定します。
ネットワーク制約の説明を記述します。
使用上の注意
このプロシージャをコールする前に、USER_SDO_NETWORK_CONSTRAINTSビューに行を挿入し、ネットワーク制約を実装するJavaクラスのコードをコンパイルし、コンパイルされたクラスの場所を特定するディレクトリ・オブジェクトをCREATE DIRECTORY文を使用して作成する必要があります。ネットワーク制約の詳細は、5.6項を参照してください。
USER_SDO_NETWORK_CONSTRAINTSビューから制約の行を削除して、その制約を無効にするには、SDO_NET.DEREGISTER_CONSTRAINTプロシージャを使用します。
このプロシージャの動作は、クライアント側のJava APIに含まれるNetworkManager
クラス(5.11.2項を参照)のregisterConstraint
メソッドを使用する場合に似ています。
例
次の例では、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ビューについては、5.10.1項を参照してください。)
例
次の例では、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);
説明
ネットワーク操作に対して表示されるメッセージについて、重大度の最低レベルを設定します。
パラメータ
ネットワーク操作に対して表示されるメッセージについて、重大度の最低レベルを指定します。「使用上の注意」に示されている数値制約のいずれか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);
構文
SDO_NET.SET_MAX_JAVA_HEAP_SIZE(
bytes IN NUMBER);
説明
Oracle Java仮想マシンで実行するアプリケーション用の最大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,
link_level IN NUMBER);
説明
空間ネットワークをパーティション化し、情報をパーティション表に格納します。
パラメータ
ネットワーク名を指定します。
パーティション化を実行するネットワーク・リンク・レベルを指定します。リンク・レベルは、リンクの優先順位です。ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、新しい表に置換されます。)パーティション表については、5.9.6項を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
使用上の注意
このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるためにSDO_NET.GENERATE_PARTITION_BLOBSプロシージャの使用を検討してください。
例
次の例では、MY_PARTITIONED_NET
ネットワーク内にリンク・レベル1のパーティションを作成して、MY_PARTITIONED_NET_TAB表を作成します。各パーティションに配置するノードの最大数は5000です。操作に関する情報は、LOG_DIR
という名前のディレクトリ・オブジェクトに関連付けられた場所にあるsdo_partitioned.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 => 'w');
構文
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ビューについては、5.10.1項を参照してください。)
例
次の例では、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.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
を戻します。
パラメータ
ネットワーク名を指定します。
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
を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
パーティション表の情報が有効かどうかを確認します(5.9.6項を参照)。
例
次の例では、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
を戻します。
パラメータ
ネットワーク名を指定します。
使用上の注意
サブパス表の情報が有効かどうかを確認します(5.9.5項を参照)。
例
次の例では、MY_NETWORK
という名前のネットワーク内のサブパスに関連するメタデータが有効かどうかを確認します。
SELECT SDO_NET.VALIDATE_SUBPATH_SCHEMA('MY_NETWORK') FROM DUAL; SDO_NET.VALIDATE_SUBPATH_SCHEMA('MY_NETWORK') -------------------------------------------------------------------------------- TRUE