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,
storage_parameters IN VARCHAR2 DEFAULT NULL);
パラメータ
コピーするネットワークの名前を指定します。
source_network
のコピーとして作成するネットワークの名前を指定します。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、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$になります。
構文
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
列は表に含まれません。)
空間ネットワーク内のリンクに関連付けられたジオメトリ・オブジェクトを含む列の名前を指定します。
リンクに関連付けるコスト値を含む列の名前を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、5.5項を参照してください。)
TRUE
を指定すると、リンク表にBIDIRECTEDという名前の列が追加され、FALSE
(デフォルト)を指定すると、リンク表にBIDIRECTEDという名前の列が追加されません。
リンク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
構文
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);
または
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);
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、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$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
将来使用するために予約されています。今回のリリースでは、無視されます。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに論理ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには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_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);
または
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ジオメトリ列を含む表の名前を指定します。
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$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
サブパス表のジオメトリ列の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときにLRSジオメトリの空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには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);
パラメータ
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);
または
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値を含む列の名前を指定します。
ネットワーク内のノードの階層レベルの数を指定します。(ネットワーク階層については、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項を参照してください。
構文
SDO_NET.CREATE_PATH_LINK_TABLE(
table_name IN VARCHAR2,
storage_parameters IN VARCHAR2 DEFAULT NULL);
構文
SDO_NET.CREATE_PATH_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)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
パス表については、5.9.3項を参照してください。
ネットワークでパスを使用するには、パス表の作成後にSDO_NET.CREATE_PATH_LINK_TABLEプロシージャを使用してパスリンク表を作成し、そのパスリンク表を移入する必要があります。
構文
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);
または
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);
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、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$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
サブパス表のジオメトリ列の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
将来使用するために予約されています。今回のリリースでは、無視されます。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。
作成するいずれかの表がすでに存在する場合、例外が発生します。
このプロシージャには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_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)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
構文
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);
または
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);
または
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);
パラメータ
ネットワーク名を指定します。
ネットワーク内のリンクの階層レベルの数を指定します。(ネットワーク階層については、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$という名前のパスリンク表が作成されます。
作成するサブパス表の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
サブパス表のジオメトリ列の名前を指定します。(サブパス表については、5.9.5項を参照してください。)
将来使用するために予約されています。今回のリリースでは、無視されます。
ネットワーク表を作成するために内部的に使用される物理記憶域パラメータを指定します。CREATE TABLE文で使用するために、有効な文字列を指定する必要があります。たとえば、TABLESPACE tbs_3 STORAGE (INITIAL 100K NEXT 200K)
のように指定します。このパラメータを指定しない場合、物理記憶域のデフォルト値が使用されます。
使用上の注意
このプロシージャは、ノード、リンクおよびオプションの関連表が存在しないときに空間ネットワークを作成する場合に役立ちます。このプロシージャは、ネットワークを作成し、そのネットワークのノード表、リンク表、パス表およびパスリンク表を作成し、xxx_SDO_NETWORK_METADATAビュー(5.10.1項を参照)に適切な情報を挿入します。ノード表およびリンク表に、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ビューに適切な行を挿入することによって、ネットワークを作成できます。
使用上の注意
このプロシージャは、指定したリンクをリンク表(5.9.2項を参照)から削除して、このリンクに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。
使用上の注意
このプロシージャは、指定したノードをノード表(5.9.1項を参照)から削除して、このノードに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したノードがリンク定義に含まれている場合は、それらのリンクは削除されます。削除されたリンクがパスおよびサブパスに含まれている場合は、それらのパスやサブパスも削除されます。
使用上の注意
このプロシージャは、指定したパスをパス表(5.9.3項を参照)から削除して、このパスに依存する他のすべてのネットワーク要素を削除します。たとえば、指定したパスにサブパスが含まれている場合は、それらのサブパスも削除されます。
使用上の注意
このプロシージャは、指定したサブパスをパス表(5.9.3項を参照)から削除します。サブパス定義に依存している他の要素がないため、このプロシージャでは、他のネットワーク要素は削除されません。
説明
データベースのJavaリポジトリから、指定したネットワーク制約のクラスをアンロード(削除)し、USER_SDO_NETWORK_CONSTRAINTSビュー(5.10.2項を参照)から該当する制約の行を削除します。
使用上の注意
このプロシージャは、SDO_NET.REGISTER_CONSTRAINTプロシージャなどで、すでに有効化されているネットワーク制約を無効にする場合に使用します。ネットワーク制約の詳細は、5.6項を参照してください。
構文
SDO_NET.FIND_CONNECTED_COMPONENTS(
network IN VARCHAR2,
link_level IN NUMBER DEFAULT 1,
component_table_name IN VARCHAR2,
log_loc IN VARCHAR2,
log_file IN VARCHAR2,
open_mode IN VARCHAR2 DEFAULT 'A');
パラメータ
ネットワーク名を指定します。
接続されているコンポーネントを検索するためのリンク・レベルを指定します(デフォルトは1)。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成される、接続されているコンポーネントの表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)接続されているコンポーネント表については、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_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を使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
(デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
使用上の注意
network
が階層ネットワーク(複数のリンク・レベルを持つネットワーク)ではない場合、このプロシージャは処理を実行しません。階層ネットワークの詳細は、5.5項を参照してください。
ノード・レベル表の名前は、USER_SDO_NETWORK_METADATAビューのNODE_LEVEL_TABLE_NAME列(5.10.1項を参照)に格納されます。
例
次の例では、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 IN VARCHAR2,
include_user_data IN BOOLEAN,
log_loc IN VARCHAR2,
log_file IN VARCHAR2,
open_mode IN VARCHAR2 DEFAULT 'A',
preform_delta_update IN BOOLEAN DEFAULT FALSE);
説明
ネットワーク内の指定のリンク・レベルに関連付けられた指定のパーティションに対して、1つのバイナリ・ラージ・オブジェクト(BLOB)表現を生成し、その情報を既存のパーティションBLOB表に格納します。
パラメータ
ネットワーク名を指定します。
BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
パーティションID番号を指定します。リンク・レベルとパーティションIDの指定した組合せに関連付けられたネットワーク要素は、生成されたBLOBに含まれています。
各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、BLOBに含める場合はTRUE
、BLOBに含めない場合はFALSE
を指定します。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す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を追加または置換します。また、ネットワーク要素に関連付けられたすべてのユーザー・データも格納します。操作に関する情報は、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',
preform_delta_update IN BOOLEAN DEFAULT FALSE,
regenerate_node_levels IN BOOLEAN DEFAULT FALSE);
パラメータ
ネットワーク名を指定します。
各BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
このプロシージャで作成されるパーティションBLOB表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)パーティションBLOB表については、5.9.7項を参照してください。
各BLOBで表現されるネットワーク要素に関連付けられたユーザー・データについて、各BLOBに含める場合はTRUE
、各BLOBに含めない場合はFALSE
を指定します。
各パーティションBLOBが生成後にデータベースにコミットされる場合はTRUE
(デフォルト)、コミットされない場合はFALSE
を指定します(この場合、1つ以上の明示的なコミット操作を実行する必要があります)。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
(デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
(将来使用するために予約されています。唯一許可されている値はFALSE
であり、これがデフォルトです。)
マルチレベル・ネットワークのノード・レベル表を再生成する場合はTRUE
を、マルチレベル・ネットワークのノード・レベル表を再生成しない場合はFALSE
(デフォルト)を指定します。ネットワークで上位レベル(第2レベルまたはそれ以上)のノードが追加または削除される場合、またはノードのレベルが変更される場合は、このパラメータをTRUE
に設定する必要があります。ノードのレベルは、そのノードにつながる最大リンク・レベルとして定義されます。
使用上の注意
パーティション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');
使用上の注意
このファンクションは、指定されたネットワーク内の孤立ノードについて、ノードID番号のカンマ区切りのリストとともにSDO_NUMBER_ARRAYオブジェクトを戻します。孤立ノードが存在しない場合、このファンクションはNULL値を戻します。
ネットワーク内の孤立ノードの簡単な説明は、5.3項を参照してください。
構文
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))
例
次の例では、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))
例
次の例では、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)
例
次の例では、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_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番号を指定します。
リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
各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_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_PT(
network IN VARCHAR2,
link_id IN NUMBER,
percentage IN NUMBER
) RETURN SDO_GEOMETRY;
パラメータ
ネットワーク名を指定します。
指定されたpercentage
の距離に存在する点ジオメトリを戻すリンクのID番号を指定します。
割合の値を0から1までの小数として指定します。たとえば、0.25は25パーセントです。
例
次の例では、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)
使用上の注意
ネットワークは、空間ネットワークまたは論理ネットワークのいずれかになります(5.3項を参照)。
空間ネットワークの場合は、さらにSDO_NET.LRS_GEOMETRY_NETWORK、SDO_NET.SDO_GEOMETRY_NETWORKおよびSDO_NET.TOPO_GEOMETRY_NETWORKファンクションを使用して、そのジオメトリ・タイプを確認できます。
説明
ロード・オンデマンドのJavaストアド・プロシージャの構成を、指定したXMLファイルからロードまたはリロードします。ロード・オンデマンド構成は、主にパーティションBLOBの変換およびパーティション・キャッシュの構成に使用されます。(Javaストアド・プロシージャは、パッケージoracle.spatial.network.lod
のクラスです。)
パラメータ
XMLファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
ロードする情報を含むXMLファイルの名前を指定します。
使用上の注意
デフォルトでは、ロード・オンデマンド用に構成されています。このプロシージャは、デフォルトの構成を変更する必要がある場合に使用します。
パーティション・キャッシュを含むロード・オンデマンド環境の構成については、5.7.3項を参照してください。
構文
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_POWERLAW_PARTITIONプロシージャを使用します。 |
パラメータ
ネットワーク名を指定します。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、5.9.6項を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
(デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
使用上の注意
このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるために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');
構文
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);
パラメータ
ネットワーク名を指定します。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、5.9.6項を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、べき乗則の論理ネットワークでの操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
(デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
パーティション化を実行するネットワーク・リンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。
使用上の注意
このプロシージャを使用してパーティションを作成した後、特に大規模なネットワークの場合は、多くのネットワーク分析操作のパフォーマンスを向上させるために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');
使用上の注意
USER_SDO_NETWORK_METADATAビュー内で、ネットワークのエントリのGEOMETRY_TYPE列に値LRS_GEOMETRY
が含まれる場合、そのネットワークにはLRSジオメトリが含まれます。(USER_SDO_NETWORK_METADATAビューについては、5.10.1項を参照してください。)
構文
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プロシージャを使用します。
例
次の例では、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ジオメトリ(メジャー情報を持たない空間ジオメトリ)を含む空間ネットワークである場合、文字列TRUE
を戻します。ネットワークがSDOジオメトリを含む空間ネットワークではない場合は、文字列FALSE
を戻します。
使用上の注意
USER_SDO_NETWORK_METADATAビュー内で、ネットワークのエントリのGEOMETRY_TYPE列に値SDO_GEOMETRY
が含まれる場合、そのネットワークにはSDOジオメトリが含まれます。(USER_SDO_NETWORK_METADATAビューについては、5.10.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.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);
パラメータ
ネットワーク名を指定します。
このプロシージャで作成されるパーティション表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルのパーティション情報で更新されます。)パーティション表については、5.9.6項を参照してください。
各パーティションに含まれるノードの最大数を指定します。たとえば、5000を指定した場合にネットワークに50,000個のノードが含まれていると、各パーティションには5000以下のノードが含まれることになり、パーティションの合計数は10以上になります。
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
発生する可能性があるエラーや問題など、Spatialのネットワーク操作に関する情報を格納するログ・ファイルを指定します。
ログ・ファイルを開く際のモードを示す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_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項を参照してください。)
構文
SDO_NET.VALIDATE_NETWORK(
network IN VARCHAR2,
check_data IN VARCHAR2 DEFAULT 'FALSE'
) RETURN VARCHAR2;
パラメータ
ネットワーク名を指定します。
TRUE
を指定すると、ネットワーク・データの参照整合性について詳細な確認が行われます。FALSE
(デフォルト)を指定すると、ネットワーク・データの参照整合性について、詳細な確認ではなく基本的な確認が行われます。
使用上の注意
このファンクションは、ネットワークのメタデータおよび適用されるネットワーク・スキーマ構造(リンク、ノード、パス、サブパス、LRS)を確認します。ネットワーク・データについて基本的な参照整合性の確認を行い、オプションで詳細な確認を行います。エラーが検出されると、このファンクションは文字列FALSE
を戻します。
このファンクションでは、次の項目が確認されます。
ネットワークが存在する。
ネットワークのノード表およびリンク表が存在し、それらの表が必要な列を含んでいる。
ノード表に各リンクの開始ノードおよび終了ノードが存在する。
LRSジオメトリ・ネットワークの場合、LRS表が存在し、必要な列を含んでいる。
空間ネットワークの場合、ノードおよびパスのジオメトリの列が存在し、それらの列に空間索引が定義されている。
check_data
がTRUE
の場合、ネットワーク・データについて詳細な参照整合性の確認が行われます。特にネットワークが大規模な場合は、この確認に時間がかかります。