A.11.26 OPG_APIS.FIND_CC_MAPPING_BASED
形式
OPG_APIS.FIND_CC_MAPPING_BASED( edge_tab_name IN VARCHAR2, wt_clusters IN OUT VARCHAR2, wt_undir IN OUT VARCHAR2, wt_cluas IN OUT VARCHAR2, wt_newas IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, dop IN INTEGER DEFAULT 4, rounds IN INTEGER DEFAULT 0, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフの接続されているコンポーネントを検出します。接続されているすべてのコンポーネントは wt_clusters表に格納されます。元のグラフは方向性がないものとして扱われます。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- wt_clusters
-
最終的な頂点クラスタ・マッピングを保持する作業表。この表には列が2つあります(VID NUMBER、CLUSTER_ID NUMBER)。列VIDには頂点ID値が格納され、列CLUSTER_IDには対応するクラスタID値が格納されます。クラスタID値は長整数で、間にギャップがあってもかまいません。
空白の名前を指定すると、新しい表が生成され、その名前が戻されます。
- wt_undir
-
グラフの方向付けのないバージョンを保持する作業表。
- wt_cluas
-
現在のクラスタ割当てを保持する作業表。
- wt_newas
-
更新されたクラスタ割当てを保持する作業表。
- wt_delta
-
クラスタ割当ての変更(差分)を保持する作業表。
- dop
-
操作の並列度。デフォルトは4です。
- rounds
-
接続されたコンポーネントの検索で実行する反復の最大数。デフォルト値の0 (ゼロ)は接続されたコンポーネントがすべて検出されるまで計算が継続することを意味します。
- tbs
-
作業表に格納されたデータを保持する表領域の名前。
- options
-
操作に対する追加の設定。
-
'PDML=T'はパラレルDMLを使用可能にします。
-
使用上のノート
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.FIND_CLUSTERS_PREPプロシージャは実行済である必要があります。
例
次の例は、mypgという名前のプロパティ・グラフの接続されたコンポーネントを検索します。
DECLARE
wtClusters varchar2(200) := 'mypg_clusters';
wtUnDir varchar2(200);
wtCluas varchar2(200);
wtNewas varchar2(200);
wtDelta varchar2(200);
BEGIN
opg_apis.find_clusters_prep('mypgGE$', wtClusters, wtUnDir,
wtCluas, wtNewas, wtDelta, '');
dbms_output.put_line('working tables names ' || wtClusters || ' '
|| wtUnDir || ' ' || wtCluas || ' ' || wtNewas || ' '
|| wtDelta );
opg_apis.find_cc_mapping_based(''mypgGE$', wtClusters, wtUnDir,
wtCluas, wtNewas, wtDelta, 8, 0, 'MYTBS', 'PDML=T');
--
-- logic to consume results in wtClusters
-- e.g.:
-- select /*+ parallel(8) */ count(distinct cluster_id)
-- from mypg_clusters;
-- cleanup all the working tables
opg_apis.find_clusters_cleanup('mypgGE$', wtClusters, wtUnDir,
wtCluas, wtNewas, wtDelta, '');
END;
/
親トピック: OPG_APISパッケージのサブプログラム