6.37 SDO_NET.GENERATE_NODE_LEVELS
構文
SDO_NET.GENERATE_NODE_LEVELS( network IN VARCHAR2, node_level_table_name IN VARCHAR2, overwrite IN BOOLEAN DEFAULT FALSE, log_loc IN VARCHAR2, log_file IN VARCHAR2, open_mode IN VARCHAR2 DEFAULT 'A');
説明
指定したマルチレベル・ネットワークのノード・レベルを生成し、その情報を表に格納します。
パラメータ
- network
-
ネットワーク名を指定します。
- node_level_table_name
-
ノード・レベル情報を格納する表を指定します。この表には、
(node_id NUMBER PRIMARY KEY, link_level NUMBER)
という定義が必要です。 - overwrite
-
node_level_table_name
で指定された表がすでに存在する場合の動作を制御し、TRUE
を指定すると、その表の内容が新しいデータに置き換えられ、FALSE
(デフォルト)を指定すると、エラーが生成されます。(node_level_table_name
で指定された表が存在しない場合、このパラメータは無視されます。) - log_loc
-
ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。
- log_file
-
発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。
- open_mode
-
ログ・ファイルを開く際のモードを示す1文字のコードを指定します。
W
は上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A
(デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。A
を指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。
使用上のノート
network
がマルチレベル・ネットワーク(複数のリンク・レベルを持つネットワーク)ではない場合、このプロシージャは処理を実行しません。
このプロシージャは、SDO_NET.GENERATE_PARTITION_BLOBSプロシージャによって内部的に使用されます。したがって、SDO_NET.GENERATE_PARTITION_BLOBSを実行済の場合は、このプロシージャを実行する必要はありません。ただし、次のケースでは、このプロシージャを明示的に実行する必要があります。
-
BLOBからではなく、ノード表またはリンク表からパーティションを読み取るようにJavaアプリケーションが構成されており、ネットワーク上にパーティションBLOBが生成されたことがない場合。
-
上位レベルのノードがネットワークに対して追加または削除され、ノードとパーティションの関係が更新された場合。SDO_NET.GENERATE_PARTITION_BLOBを実行して、中に含まれるパーティションBLOBを再生成する前に、手動でノード・レベル表の更新またはこのプロシージャ(SDO_NET.GENERATE_NODE_LEVELS)の実行を行う必要があります。
ノード・レベル表の名前は、USER_SDO_NETWORK_METADATAビューのNODE_LEVEL_TABLE_NAME列(「xxx_SDO_NETWORK_METADATAビュー」を参照)に格納されます。
例
次の例では、MY_MULTILEVEL_NETネットワークのノード・レベル情報を生成して、その情報をMY_NET_NODE_LEVELS表に格納します。操作に関する情報は、LOG_DIR
という名前のディレクトリ・オブジェクトに関連付けられた場所にあるmy_multilevel_net.log
ファイルに追加されます(open_mode => 'a'
)。
EXECUTE SDO_NET.GENERATE_NODE_LEVELS(- network => 'MY_MULTILEVEL_NET', - node_level_table_name => 'MY_NET_NODE_LEVELS',- overwrite => FALSE,- log_loc => 'LOG_DIR', log_file=> 'my_multilevel_net.log',- open_mode => 'a');
親トピック: SDO_NETパッケージ・サブプログラム