A.11.48 OPG_APIS.PR
形式
OPG_APIS.PR( edge_tab_name IN VARCHAR2, d IN NUMBER DEFAULT 0.85, num_iterations IN NUMBER DEFAULT 10, convergence IN NUMBER DEFAULT 0.1, dop IN INTEGER DEFAULT 4, wt_node_pr IN OUT VARCHAR2, wt_node_nextpr IN OUT VARCHAR2, wt_edge_tab_deg IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, tablespace IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, num_vertices OUT NUMBER);
説明
ページ・ランクの計算の準備を行います。
パラメータ
- edge_tab_name
- 
                        プロパティ・グラフ・エッジ表の名前。 
- d
- 
                        減衰係数。 
- num_iterations
- 
                        ページ・ランク値の計算の反復回数。 
- convergence
- 
                        しきい値。現在の反復のページ・ランク値と次の反復のページ・ランク値の違いがこのしきい値よりも小さい場合、計算は停止します。 
- dop
- 
                        操作の並列度。 
- wt_node_pr
- 
                        頂点のページ・ランク値を保持する作業表の名前。 
- wt_node_pr
- 
                        頂点のページ・ランク値を保持する作業表の名前。 
- wt_node_next_pr
- 
                        次の反復の頂点のページ・ランク値を保持する作業表の名前。 
- wt_edge_tab_deg
- 
                        エッジとノードの並列度情報を保持する作業表の名前。 
- wt_delta
- 
                        いくつかの特別な頂点に関する情報を保持する作業表の名前。 
- tablespace
- 
                        すべてのグラフ・データおよび索引データを保持する表領域の名前。 
- options
- 
                        操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。 - 
                              CREATE_UNDIRECTED=T
- 
                              REUSE_UNDIRECTED_TAB=T
 
- 
                              
- num_vertices
- 
                        ページ・ランクの計算により処理される頂点の数。 
使用上のノート
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.PR_PREPプロシージャはコール済である必要があります。
例
次の例は、準備を実行してから、mypgという名前のプロパティ・グラフの頂点のページ・ランク値を計算します。
                  
set serveroutput on
DECLARE
    wt_pr  varchar2(2000); -- name of the table to hold PR value of the current iteration
    wt_npr varchar2(2000); -- name of the table to hold PR value for the next iteration
    wt3    varchar2(2000); 
    wt4    varchar2(2000); 
    wt5    varchar2(2000); 
    n_vertices number;
BEGIN
    wt_pr := 'mypgPR';
    opg_apis.pr_prep('mypgGE$', wt_pr, wt_npr, wt3, wt4, null);
    dbms_output.put_line('Working table names  ' || wt_pr 
       || ', wt_npr ' || wt_npr || ', wt3 ' || wt3 || ', wt4 '|| wt4);
    opg_apis.pr('mypgGE$', 0.85, 10, 0.01, 4, wt_pr, wt_npr, wt3, wt4, 'SYSAUX', null, n_vertices)
;
END;
/
出力は、次のようになります。
Working table names "MYPGPR", wt_npr "MYPGGE$$TWPRX277", wt3 "MYPGGE$$TWPRE277", wt4 "MYPGGE$$TWPRD277"
計算されたページ・ランク値は、次の定義およびデータを含むmypgpr表に格納されます。
SQL> desc mypgpr;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 NODE					   NOT NULL NUMBER
 PR						            NUMBER
 C						              NUMBER
SQL> select node, pr from mypgpr;
      NODE	   PR
---------- ----------
       101	.1925
       201	.2775
       102	.1925
       104  .74383125
       105  .313625
       103	.1925
       100	.15
       200	.15
親トピック: OPG_APISパッケージのサブプログラム