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