6.39 SDO_NET.GENERATE_PARTITION_BLOBS

構文

SDO_NET.GENERATE_PARTITION_BLOBS(
     network                   IN VARCHAR2,
     link_level                IN NUMBER DEFAULT 1,
     partition_blob_table_name IN VARCHAR2,
     include_user_data         IN BOOLEAN,
     commit_for_each_blob      IN BOOLEAN DEFAULT TRUE,
     log_loc                   IN VARCHAR2,
     log_file                  IN VARCHAR2,
     open_mode                 IN VARCHAR2 DEFAULT 'A',
     perform_delta_update      IN BOOLEAN DEFAULT FALSE,
     regenerate_node_levels    IN BOOLEAN DEFAULT FALSE);

説明

ネットワーク内の指定のリンク・レベルに関連付けられたパーティションに対して、バイナリ・ラージ・オブジェクト(BLOB)表現を生成し、その情報をパーティションBLOB表に格納します。

パラメータ

network

ネットワーク名を指定します。

link_level

各BLOBに含まれるリンクのリンク・レベル(デフォルトは1)を指定します。リンク・レベルは、リンクの優先順位であり、ネットワーク分析に使用すると、パスの計算時に優先順位の高いリンクが最初に考慮されます。

partition_blob_table_name

このプロシージャで作成されるパーティションBLOB表の名前を指定します。(指定した名前の表がすでに存在する場合は、指定したリンク・レベルの情報で更新されます。)パーティションBLOB表については、「パーティションBLOB表」を参照してください。

include_user_data

各BLOBで表現されるネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のユーザー・データについて、各BLOBに含める場合はTRUE、各BLOBに含めない場合はFALSEを指定します。

commit_for_each_blob

各パーティションBLOBが生成後にデータベースにコミットされる場合はTRUE (デフォルト)、コミットされない場合はFALSEを指定します(この場合、1つ以上の明示的なコミット操作を実行する必要があります)。

log_loc

ログ・ファイルのパスを特定するディレクトリ・オブジェクトを指定します。ディレクトリ・オブジェクトを作成するには、SQL*PlusコマンドのCREATE DIRECTORYを使用します。

log_file

発生する可能性があるエラーや問題など、空間ネットワーク操作に関する情報を格納するログ・ファイルを指定します。

open_mode

ログ・ファイルを開く際のモードを示す1文字のコードを指定します。Wは上書き(指定した場所および名前の既存のログ・ファイルをすべて削除し、新規ファイルを作成)、A (デフォルト)は追加(指定した既存のログ・ファイルに情報を追加)を表します。Aを指定し、そのログ・ファイルが存在しない場合は、新規ログ・ファイルが作成されます。

perform_delta_update

(将来使用するために予約されています。唯一許可されている値はFALSEであり、これがデフォルトです。)

regenerate_node_levels

マルチレベル・ネットワークのノード・レベル表を再生成する場合はTRUEを、マルチレベル・ネットワークのノード・レベル表を再生成しない場合はFALSE (デフォルト)を指定します。ネットワークで上位レベル(第2レベルまたはそれ以上)のノードが追加または削除される場合、またはノードのレベルが変更される場合は、このパラメータをTRUEに設定する必要があります。ノードのレベルは、そのノードにつながる最大リンク・レベルとして定義されます。

使用上のノート

パーティションBLOBを生成すると、特に大規模なネットワークの場合には、ネットワーク分析の多くの操作でパフォーマンスが向上します。

ネットワークがパーティション化されていない場合、このプロシージャは、ネットワーク全体を表す1つのBLOBを生成します。

このプロシージャは、最初にマルチレベル・ネットワーク上で実行されるときに、SDO_NET.GENERATE_NODE_LEVELSを内部的にコールしてノード・レベル表(「ノード・レベル表(オプション)」を参照)を作成して移入します。その後、このプロシージャがマルチレベル・ネットワーク上でコールされるときは、regenerate_node_levelsパラメータを使用して、既存のノード・レベル表を上書きするかどうかを指定できます。

このプロシージャを、リンク・レベルとパーティションIDの指定した組合せに対して単一のBLOBを再生成し、既存のパーティションBLOB表に情報を追加するSDO_NET.GENERATE_PARTITION_BLOBと混同しないように注意してください。

次の例では、SDO_PARTITIONEDネットワーク内にリンク・レベル1のパーティションBLOBを生成し、SDO_PARTITIONED_PART_BLOB_TAB表を作成または更新します。また、ネットワーク要素に関連付けられたカテゴリ0 (ゼロ)のすべてのユーザー・データも格納します。操作に関する情報は、LOG_DIRという名前のディレクトリ・オブジェクトに関連付けられた場所にあるsdo_partitioned.logファイルに追加されます(open_mode => 'a')。

EXECUTE SDO_NET.GENERATE_PARTITION_BLOBS(-
  network => 'SDO_PARTITIONED', -
  link_level => 1,-
  partition_blob_table_name => 'sdo_partitioned_part_blob_tab',-
  include_user_data => true,-
  log_loc => 'LOG_DIR', log_file=> 'sdo_partitioned.log',-
  open_mode => 'a');