7 SDO_NFEパッケージ・サブプログラム
MDSYS.SDO_NFEパッケージには、ネットワーク・フィーチャ編集を実行するためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。
これらのサブプログラムを使用する場合は、概念(「ネットワーク・データ・モデル・グラフの概要」、特に「ネットワーク・フィーチャ編集(NFE)を使用したフィーチャ・モデリング」を参照)を理解しておく必要があります。
トピック:
- SDO_NFE.APPLY_RULE
- SDO_NFE.CLASSIFY_LINES_BY_SIDE
- SDO_NFE.CREATE_MODEL_SEQUENCE
- SDO_NFE.CREATE_MODEL_STRUCTURE
- SDO_NFE.CREATE_MODEL_UNDERLYING_NET
- SDO_NFE.CREATE_MODEL_WORKSPACE
- SDO_NFE.DELETE_ALL_FT_LAYERS
- SDO_NFE.DELETE_ALL_WORKSPACES
- SDO_NFE.DELETE_MODEL_STRUCTURE
- SDO_NFE.DELETE_MODEL_WORKSPACE
- SDO_NFE.DROP_MODEL_SEQUENCE
- SDO_NFE.DROP_MODEL_UNDERLYING_NETWORK
- SDO_NFE.GET_CONNECTION_POINT_GEOM
- SDO_NFE.GET_INTERACTION_GROUPS
- SDO_NFE.GET_LINES_MATCH_LP_RULE
- SDO_NFE.GET_LL_CONN_INTERSECTIONS
- SDO_NFE.GET_LP_CONN_INTERSECTIONS
- SDO_NFE.GET_MODEL_SEQUENCE_NAME
- SDO_NFE.GET_MODEL_TABLE_NAME
- SDO_NFE.GET_MODEL_UNDERLYING_NETWORK
- SDO_NFE.GET_NEXT_SEQUENCE_VALUE
- SDO_NFE.GET_POINTS_MATCH_LP_RULE
- SDO_NFE.IMPORT_NETWORK
- SDO_NFE.SET_MODEL_UNDERLYING_NETWORK
7.1 SDO_NFE.APPLY_RULE
構文
SDO_NFE.APPLY_RULE( model_id IN NUMBER, rule_type IN VARCHAR2, rule_id IN NUMBER);
説明
指定されたNFEモデルに含まれるすべてのフィーチャに接続性ルールを適用します。
パラメータ
使用上の注意
指定するルールは、指定するモデルに登録されている必要があります。モデル表で、またはJava APIを使用して接続性ルールを登録できます。
例
次の例では、ルールID 1で識別される接続性ルールに適合するNFEモデル内で相互作用線に線-線ルールを適用します。
DECLARE model_id NUMBER := 1; rule_type VARCHAR2(1) := sdo_nfe.RULE_TYPE_LINE_LINE; rule_id NUMBER := 1; BEGIN sdo_nfe.apply_rule( model_id, rule_type, rule_id ); END; /
7.2 SDO_NFE.CLASSIFY_LINES_BY_SIDE
構文
SDO_NFE.CLASSIFY_LINES_BY_SIDE( model_id IN NUMBER, ll_rule_id IN NUMBER, lines IN NUMBER, lhs_indexes OUT DBMS_SQL,NUMBER_TABLE, rhs_indexes OUT DBMS_SQL,NUMBER_TABLE);
説明
線-線接続性ルールに合致する一連の線フィーチャが指定されると、このプロシージャでは、ルールの左辺にある線と右辺にある線を分類します。
パラメータ
使用上の注意
指定するルールは、指定するモデルに登録されている必要があります。モデル表で、またはJava APIを使用して接続性ルールを登録できます。
例
次の例では、まずID 1のルールに適合する相互作用グループをすべて取得し、次に線を左辺、右辺に分類します。左辺の線がlhs_indexesに出力される一方、rhs_indexesにはルールの右辺の線が格納されます。
DECLARE model_id NUMBER := 1; ll_rule_id NUMBER := 1; lines SDO_INTERACT_LINE_FEAT_ARRAY; lhs_indexes dbms_sql.NUMBER_TABLE; rhs_indexes dbms_sql.NUMBER_TABLE; inter_grps SDO_INTERACTION_ARRAY; BEGIN -- Get the groups of interacting features that meet the L-L Rule inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_LINE, ll_rule_id ); FOR i IN 1..inter_grps.count loop lines := inter_grps(i).lines; -- For each group, classify the lines by rule side. sdo_nfe.classify_lines_by_side( model_id, ll_rule_id, lines, lhs_indexes, rhs_indexes ); END loop; END;
7.3 SDO_NFE.CREATE_MODEL_SEQUENCE
構文
SDO_NFE.CREATE_MODEL_SEQUENCE( model_id IN NUMBER, owner_name IN VARCHAR2, aequence_name IN VARCHAR2);
説明
モデルの順序を作成して登録します。
使用上の注意
実表の順序はすべてSDO_NFE.CREATE_MODEL_STRUCTUREファンクションによって作成されますが、その他の順序(フィーチャ用など)の作成が必要になる場合があります。
NFEモデルおよび順序の関連表が存在する必要があります。
例
次の例では、ID 1で識別されるNFEモデルおよびFEATURESという名前の表について順序を作成します。
SDO_NFE.CREATE_MODEL_SEQUENCE(’1’,’features’,’features_seq’)
7.4 SDO_NFE.CREATE_MODEL_STRUCTURE
構文
SDO_NFE.CREATE_MODEL_STRUCTURE( model_name IN VARCHAR2, edition_mode IN NUMBER, versionable IN VARCHAR2 ) RETURN NUMBER;
説明
NFEモデルの表およびメタデータを作成します。
パラメータ
使用上の注意
このファンクションは、新しいモデルのID値を戻します。
例
次の例では、SDO_NFE.FROM_SCRATCH
エディション・モードでMODEL01
という名前のバージョニング可能なモデルを作成します。
DECLARE model_id NUMBER; model_name VARCHAR2(50) := 'MODEL01'; edition_mode NUMBER := SDO_NFE.FROM_SCRATCH; versionable VARCHAR2(1) := 'Y'; BEGIN model_id := SDO_NFE.create_model_structure( model_name, edition_mode, versionable ); END; /
7.5 SDO_NFE.CREATE_MODEL_UNDERLYING_NET
構文
SDO_NFE.CREATE_MODEL_UNDERLYING_NET( model_id IN NUMBER, network_name IN VARCHAR2, num_hierarchy_levels IN NUMBER, is_directed IN BOOLDEAN, node_with_costs IN BOOLEAN);
説明
空間ネットワークを作成し、指定されたNFEモデルに関連付けます。また、ノード、リンクおよびパスについて順序を作成し、モデルのメタデータに登録します。
パラメータ
使用上の注意
指定したIDのNFEモデルが存在する必要があります。新たに作成されるネットワークのノード表およびリンク表のジオメトリ・メタデータを登録する必要があります。
例
次の例では、NFEモデルの基礎となるネットワークを作成し、ネットワークのリンク表およびノード表のジオメトリ・メタデータを登録します。
DECLARE model_id NUMBER := 1; network_name VARCHAR2(50) := 'MODEL01'; num_hierarchy_levels NUMBER := 1; is_directed VARCHAR2(10) := 'TRUE'; node_with_costs VARCHAR2(10) := 'TRUE'; BEGIN -- create underlying network SDO_NFE.create_model_underlying_net( model_id, network_name, num_hierarchy_levels, is_directed, node_with_costs ); -- register links and nodes tables geom metadata SDO_NET.insert_geom_metadata(network_name, SDO_DIM_ARRAY(SDO_DIM_ELEMENT('LONGITUDE', -180, 180, 0.5), SDO_DIM_ELEMENT('LATITUDE', -90, 90, 0.5)), 8307); END; /
7.6 SDO_NFE.CREATE_MODEL_WORKSPACE
構文
SDO_NFE.CREATE_MODEL_WORKSPACE( model_id IN NUMBER, parent_workspace_name IN VARCHAR2, workspace_name IN VARCHAR2, is_mbr IN VARCHAR2, is_locked IN VARCHAR2, lower_x IN NUMBER, lower_y IN NUMBER, upper_x IN NUMBER, upper_y IN NUMBER);
説明
新しい作業領域を作成してNFEモデルに関連付けます。
パラメータ
使用上の注意
NFEモデルは、versionable
オプションを有効にして作成しておく必要があります。
例
次の例では、NFEモデルの作業領域を作成します。
DECLARE model_id NUMBER := 1; parent_ws_name VARCHAR2(30) := 'LIVE'; workspace_name VARCHAR2(30) := 'PROJECT_V1'; is_mbr VARCHAR2(1) := 'Y'; is_locked VARCHAR2(1) := 'N'; lower_x NUMBER := -15.575; lower_y NUMBER := 15.575; upper_x NUMBER := -12.825; upper_y NUMBER := 28.975; BEGIN SDO_NFE.create_model_workspace(model_id, parent_ws_name, workspace_name, is_mbr, is_locked, lower_x, lower_y, upper_x, upper_y); END; /
7.9 SDO_NFE.DELETE_MODEL_STRUCTURE
構文
SDO_NFE.DELETE_MODEL_STRUCTURE( model_id IN NUMBER);
説明
指定されたNFEモデル内の表をすべて削除し、モデルのメタデータ・レコードを削除します。
使用上の注意
このプロシージャを使用する前に、次の作業の実行が必要になる場合があります。
-
SDO_NFE.DELETE_ALL_WORKSPACESプロシージャを実行して、モデルの作業領域を削除します。
-
SDO_NFE.DELETE_ALL_FT_LAYERSプロシージャを実行して、モデルのフィーチャ・レイヤーを削除します。
-
モデルのエディション・モードが
SDO_NFE.FROM_SCRATCH
の場合は、基礎となるネットワークを削除します。
例
次の例では、ID値1のモデルの構造を削除します。
EXECUTE SDO_NFE.DELETE_MODEL_STRUCTURE(1);
7.10 SDO_NFE.DELETE_MODEL_WORKSPACE
構文
SDO_NFE.DELETE_MODEL_WORKSPACE( model_id IN NUMBER, workspace_name IN VARCHAR2);
説明
指定されたNFEモデルとの関係とともに、作業領域を削除します。
使用上の注意
workspace_name
は、指定したNFEモデルに既存する作業領域の名前にする必要があります。作業領域のブランチはすべて削除されます。
モデルとの関係は、xxx_SDO_NFE_MODEL_WORKSPACEビューから削除されます。
例
次の例では、ID値1のNFEモデルからPROJECT_V4
という名前の作業領域を削除します
EXECUTE SDO_NFE.DELETE_MODEL_WORKSPACE(1, 'PROJECT_V4');
7.11 SDO_NFE.DROP_MODEL_SEQUENCE
構文
SDO_NFE.DROP_MODEL_SEQUENCE( model_id IN NUMBER, seq_name IN VARCHAR2);
説明
指定されたNFEモデルとの関係とともに、順序を削除します。
使用上の注意
モデルとの順序の関係は、xxx_SDO_NFE_MODEL_METADATAビューのSEQUENCE_REG_TABに登録されている表から削除されます。
例
次の例では、ID値1のNFEモデルからPIPES_FTLAY_ID_SEQ
という名前の順序を削除します。
EXECUTE SDO_NFE.DROP_MODEL_SEQUENCE(1, 'PIPES_FTLAY_ID_SEQ');
7.13 SDO_NFE.GET_CONNECTION_POINT_GEOM
構文
SDO_NFE.GET_CONNECTION_POINT_GEOM( conn_intersection IN SDO_INTERACTION ) RETURN SDO_GEOMETRY;
説明
相互作用フィーチャ(線または点)のグループが指定されると、それらに接続する必要がある点のジオメトリを計算して戻します。
パラメータ
- conn_intersection
-
フィーチャの相互作用グループ。共通空間点で相互作用する一連の線フィーチャまたは点フィーチャ。(SDO_INTERACTION型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
使用上の注意
このファンクションは主に、接続性ルールの要件(「NFEルール」を参照)のために、接続する必要があるフィーチャの有効なグループに使用します。そのフィーチャのグループを取得するには、SDO_NFE.GET_LP_CONN_INTERSECTIONS (線-点ルールの場合)またはSDO_NFE.GET_LL_CONN_INTERSECTIONS(線-線ルールの場合)を使用します。
例
次の例では、指定された線-点ルールに適合する相互作用グループごとに接続点ジオメトリを取得します。
DECLARE model_id NUMBER := 1; lp_rule_id NUMBER := 1; inter_grps SDO_INTERACTION_ARRAY; conn_point_geom SDO_GEOMETRY; BEGIN -- Get the groups of interacting features that meet the L-P Rule in the model inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_POINT, lp_rule_id ); -- Iterate through the interacting groups FOR i IN 1..inter_grps.count loop -- Get the connection point geometry for each interacting group conn_point_geom := sdo_nfe.get_connection_point_geom( inter_groups(i)); END loop; END; /
7.14 SDO_NFE.GET_INTERACTION_GROUPS
構文
SDO_NFE.GET_INTERACTION_GROUPS( model_id IN SDO_NUMBER, rule_type IN VARCHAR2, rule_id IN NUMBER ) RETURN SDO_INTERACTION_ARRAY;
説明
指定された接続性ルールに適合する空間点で相互作用している全フィーチャのグループの配列を戻します。
パラメータ
使用上の注意
このファンクションは、SDO_INTERACTION_ARRAY型(「NFE接続性ルールに使用するデータ型」を参照)のオブジェクトを戻します。
このファンクションによって戻される相互作用フィーチャの各グループは、指定したルールに適合する特定の空間点で相互作用するすべての線フィーチャと点フィーチャで構成されます。
このファンクションは、特定の点におけるすべての相互作用フィーチャのグループ全体を戻すので、他のどの(ルールに適合する、またはしない)フィーチャが指定の相互作用点に加わっているかに応じて、カスタマイズした接続フィーチャを作成する場合に役立ちます。(「NFEルール」のルール・デシジョン・ハンドラの説明を参照してください。)
例
次の例では、指定された線-点ルールに適合する相互作用グループを取得します。
DECLARE model_id NUMBER := 1; lp_rule_id NUMBER := 1; inter_grps SDO_INTERACTION_ARRAY; BEGIN inter_grps := sdo_nfe.get_interaction_groups( model_id, END; /
7.15 SDO_NFE.GET_LINES_MATCH_LP_RULE
構文
SDO_NFE.GET_LINES_MATCH_LP_RULE( model_id IN SDO_NUMBER, lp_rule_id IN NUMBER, lines IN SDO_INTERACT_LINE_FEAT_ARRAY, ) RETURN DBMS_SQL.NUMBER_TABLE;
説明
一連の線フィーチャが指定されると、線-点接続性ルールに合致する線フィーチャのグループを計算します。線-点ルールに合致する入力配列内の線の索引とともに、DBMS_SQL.NUMBER_TABLEオブジェクトを戻します。
パラメータ
- model_id
-
NFEモデルの識別子。
- lp_rule_id
- 線-点接続性ルールの識別子。LINE_POINT_RULE表に存在する必要があります。
- lines
- 検索が実行される線フィーチャの配列。(SDO_INTERACT_LINE_FEAT_ARRAY型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
使用上の注意
このファンクションは主に、特定の接続性ルールに合致した線フィーチャもあれば、合致しなかったものもあるといった線フィーチャの混成グループを戻すSDO_NFE.GET_INTERACTION_GROUPSファンクションの後に使用します。
例
次の例では、線-点接続性ルールに適合する線を相互作用グループから検出します。
DECLARE model_id NUMBER := 1; lp_rule_id NUMBER := 1; lines SDO_INTERACT_LINE_FEAT_ARRAY; match_lines dbms_sql.NUMBER_TABLE; inter_grps SDO_INTERACTION_ARRAY; BEGIN -- find interaction groups inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_LINE, 1 ); FOR i IN 1..inter_grps.count loop lines := inter_grps(i).lines; match_lines := sdo_nfe.get_lines_match_lp_rule( model_id, lp_rule_id, lines ); END loop; END; /
7.16 SDO_NFE.GET_LL_CONN_INTERSECTIONS
構文
SDO_NFE.GET_LL_CONN_INTERSECTIONS( model_id IN SDO_NUMBER, ll_rule_id IN NUMBER, interaction_grp IN OUT SDO_INTERACTION, rule_lhs_lines_indexes IN DBMS_SQL.NUMBER_TABLE, rule_rhs_lines_indexes IN DBMS_SQL.NUMBER_TABLE, rule_points_indexes IN DBMS_SQL.NUMBER_TABLE, ) RETURN SDO_INTERACTION_ARRAY;
説明
相互作用フィーチャ(線または点)のグループが指定されると、このファンクションは、指定された線-線接続性ルールに応じて接続可能なフィーチャのサブグループを計算し、接続可能なフィーチャ・グループのセットを戻します。
パラメータ
- model_id
-
NFEモデルの識別子。
- ll_rule_id
- 線-線接続性ルールの識別子。LINE_LINE_RULE表に存在する必要があります。
- interaction_grp
- 相互作用フィーチャのグループ。(SDO_INTERACTION型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
- rule_lhs_lines_indexes
- 相互作用グループ内の線フィーチャで、線-線ルールの左辺に合致する線の索引。
- rule_rhs_lines_indexes
- 相互作用グループ内の線フィーチャで、線-線ルールの右辺に合致する線の索引。
- rule_points_indexes
- 相互作用グループ内の点フィーチャで、線-線ルールでの点フィーチャの指定に合致する点の索引。このような点は、接続可能グールの構造に考慮される点です。
使用上の注意
このファンクションは、SDO_INTERACTION_ARRAYオブジェクトを戻します。(SDO_INTERACTION_ARRAY型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
LHS線およびRHS線の索引は、SDO_NFE.CLASSIFY_LINES_BY_SIDEプロシージャを使用して取得できます。点の索引は、SDO_NFE.GET_POINTS_MATCH_LP_RULEファンクションを使用して取得できます。
このファンクションは、線-線ルールが(Java APIを使用して)モデルに作成されると、デフォルトでルール・デシジョン・ハンドラ表に登録されます。ただし、このファンクションは、接続可能なフィーチャのグループをカスタマイズされた方法で計算する他のユーザー・ファンクションで置き換えることができます。接続(ルール・デシジョン・ハンドラ)のカスタマイズの詳細は、「NFEルール」のルール・デシジョン・ハンドラの説明を参照してください。
例
次の例では、指定された線-線ルールに合致する相互作用グループごとに接続可能なフィーチャ・グループのセットを取得します。
DECLARE model_id NUMBER := 1; ll_rule_id NUMBER := 1; rule_lhs_lines_indexes dbms_sql.NUMBER_TABLE; rule_rhs_lines_indexes dbms_sql.NUMBER_TABLE; rule_points_indexes dbms_sql.NUMBER_TABLE; conn_interacs SDO_INTERACTION_ARRAY; inter_grps SDO_INTERACTION_ARRAY; BEGIN -- Get the groups of interacting features that meet the L-L Rule in the model inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_LINE, ll_rule_id ); FOR i IN 1..inter_grps.count loop -- Classify the line features by side in the L-L rule (LHS, RHS). sdo_nfe.classify_lines_by_side( model_id, ll_rule_id, inter_grps(i).lines, rule_lhs_lines_indexes, rule_rhs_lines_indexes ); -- Get the specific point features that match the L-L rule. rule_points_indexes := sdo_nfe.get_points_match_lp_rule( model_id, 1, inter_grps(i).points ); -- Get the group of features that can be connected according the L-L rule. conn_interacs := sdo_nfe.get_ll_conn_intersections( model_id, ll_rule_id, inter_grps(i), rule_lhs_lines_indexes, rule_rhs_lines_indexes, rule_points_indexes); END loop; END; /
7.17 SDO_NFE.GET_LP_CONN_INTERSECTIONS
構文
SDO_NFE.GET_LP_CONN_INTERSECTIONS( model_id IN SDO_NUMBER, lp_rule_id IN NUMBER, interaction_grp IN OUT SDO_INTERACTION, rule_lhs_lines_indexes IN DBMS_SQL.NUMBER_TABLE, rule_rhs_lines_indexes IN DBMS_SQL.NUMBER_TABLE, rule_points_indexes IN DBMS_SQL.NUMBER_TABLE, ) RETURN SDO_INTERACTION_ARRAY;
説明
相互作用フィーチャ(線または点)のグループが指定されると、このファンクションは、指定された線-点接続性ルールに応じて接続可能なフィーチャのサブグループを計算し、接続可能なフィーチャ・グループのセットを戻します。
パラメータ
- model_id
-
NFEモデルの識別子。
- lp_rule_id
- 線-点接続性ルールの識別子。LINE_POINT_RULE表に存在する必要があります。
- interaction_grp
- 相互作用フィーチャのグループ。(SDO_INTERACTION型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
- rule_lhs_lines_indexes
- 相互作用グループ内の線フィーチャで、線-点ルールの左辺に合致する線の索引。
- rule_rhs_lines_indexes
- 相互作用グループ内の線フィーチャで、線-点ルールの右辺に合致する線の索引。
- rule_points_indexes
- 相互作用グループ内の点フィーチャで、線-点ルールでの点フィーチャの指定に合致する点の索引。このような点は、接続可能グールの構造に考慮される点です。
使用上の注意
このファンクションは、SDO_INTERACTION_ARRAYオブジェクトを戻します。(SDO_INTERACTION_ARRAY型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
LHS線およびRHS線の索引は、SDO_NFE.CLASSIFY_LINES_BY_SIDEプロシージャを使用して取得できます。点の索引は、SDO_NFE.GET_POINTS_MATCH_LP_RULEファンクションを使用して取得できます。
このファンクションは、線-点ルールが(Java APIを使用して)モデルに作成されると、デフォルトでルール・デシジョン・ハンドラ表に登録されます。ただし、このファンクションは、接続可能なフィーチャのグループをカスタマイズされた方法で計算する他のユーザー・ファンクションで置き換えることができます。接続(ルール・デシジョン・ハンドラ)のカスタマイズの詳細は、「NFEルール」のルール・デシジョン・ハンドラの説明を参照してください。
例
次の例では、相互作用グループごとに指定された線-点ルールに応じて接続可能なフィーチャのグループを取得します。
DECLARE model_id NUMBER := 1; lp_rule_id NUMBER := 1; rule_lines_indexes dbms_sql.NUMBER_TABLE; rule_points_indexes dbms_sql.NUMBER_TABLE; conn_interacs SDO_INTERACTION_ARRAY; inter_grps SDO_INTERACTION_ARRAY; BEGIN -- Get the groups of interacting features that meet the L-P Rule in the model inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_POINT, lp_rule_id ); -- For each group: FOR i IN 1..inter_grps.count loop -- Get the specific line features that match the L-P rule. rule_lines_indexes := sdo_nfe.get_lines_match_lp_rule( model_id, lp_rule_id, inter_grps(i).lines ); -- Get the specific point features that match the L-P rule. rule_points_indexes := sdo_nfe.get_points_match_lp_rule( model_id, lp_rule_id, inter_grps(i).points ); -- Get the group of features that can be connected according the L-P rule. conn_interacs := sdo_nfe.get_lp_conn_intersections( model_id, lp_rule_id, inter_grps(i), rule_lines_indexes, rule_points_indexes ); END loop; END; /
7.18 SDO_NFE.GET_MODEL_SEQUENCE_NAME
構文
SDO_NFE.GET_MODEL_SEQUENCE_NAME( model_id IN SDO_NUMBER, tab_name IN VARCHAR2 ) RETURN VARCHAR2;
説明
指定されたモデルの表の順序名を戻します。
使用上の注意
表名はTABLE_REG_TAB表に存在する必要があり、その順序の名前はSEQUENCE_REG_TAB表に存在する必要があります。SDO_NFE.CREATE_MODEL_STRUCTUREを使用して新しいモデルを作成すると、モデルの表および順序はすべて適切なビューおよび表に自動的に登録されます。SDO_NFE.CREATE_MODEL_SEQUENCEを実行すると、モデルの表の順序が登録されます。
例
次の例では、IDが1のNFEモデルのフィーチャ・クラスを格納している表に定義された順序名を取得します。
SELECT SDO_NFE.GET_MODEL_SEQUENCE_NAME(1, sdo_nfe.get_model_table_name(1, SDO_NFE.FT_CLASS));
7.19 SDO_NFE.GET_MODEL_TABLE_NAME
構文
SDO_NFE.GET_MODEL_TABLE_NAME( model_id IN SDO_NUMBER, table_type IN VARCHAR2 ) RETURN VARCHAR2;
説明
NFEモデルについて指定されたタイプの表の名前を戻します。
使用上の注意
表名はTABLE_REG_TAB表に存在する必要があり、その順序の名前はSEQUENCE_REG_TAB表に存在する必要があります。SDO_NFE.CREATE_MODEL_STRUCTUREを使用して新しいモデルを作成すると、モデルのすべて表および順序の名前は適切なビューおよび表に自動的に登録されます。
例
次の例では、IDが1のNFEモデルのフィーチャ・クラスを格納している表の名前を取得します。
SELECT SDO_NFE.GET_MODEL_TABLE_NAME(1, SDO_NFE.FT_CLASS);
7.20 SDO_NFE.GET_MODEL_UNDERLYING_NETWORK
構文
SDO_NFE.GET_MODEL_UNDERLYING_NETWORK( model_id IN SDO_NUMBER ) RETURN VARCHAR2;
説明
NFEモデルに関連付けられているネットワークの名前を戻します。
使用上の注意
ネットワークは、作成処理中に、SDO_NFE.FROM_SCRATCHモードのモデルにSDO_NFE.CREATE_MODEL_UNDERLYING_NETを使用するか、またはSDO_NFE.OVER_EXIST_NETWORKモードのモデルにSDO_NFE.SET_MODEL_UNDERLYING_NETWORKを使用すると、NFEモデルに関連付けられます。
例
次の例では、既存のNFEモデルに関連付けられた基礎となるネットワークを取得します。
SELECT SDO_NFE.get_model_underlying_network(1) FROM DUAL;
7.21 SDO_NFE.GET_NEXT_SEQUENCE_VALUE
構文
SDO_NFE.GET_NEXT_SEQUENCE_VALUE( sequence_name IN VARCHAR2, seq_value_increment IN NUMBER ) RETURN NUMBER;
説明
2番目のパラメータの値を指定された順序の現行値に加算した結果となる値を戻します。
パラメータ
使用上の注意
このファンクションは、指定された順序のINCREMENT BY値またはその順序の現行値を変更しません。
このファンクションを使用して、一連の連続した順序番号を管理できます。
例
次の例では、MY_SEQという名前の順序の現行値に10を加算した結果となる値を戻します。
SELECT SDO_NFE.GET_NEXT_SEQUENCE_VALUE('my_seq', 10) FROM DUAL;
MY_SEQの現行値が100の場合、この例では値110 (100 + 10)を戻します。
7.22 SDO_NFE.GET_POINTS_MATCH_LP_RULE
構文
SDO_NFE.GET_POINTS_MATCH_LP_RULE( model_id IN SDO_NUMBER, lp_rule_id IN NUMBER, points IN SDO_INTERACT_POINT_FEAT_ARRAY, ) RETURN DBMS_SQL.NUMBER_TABLE;
説明
一連の点フィーチャが指定されると、このファンクションは、線-点接続性ルールに合致する点フィーチャのグループを計算します。線-点ルールに合致する入力配列内の点の索引とともに、DBMS_SQL.NUMBER_TABLEオブジェクトを戻します。
パラメータ
- model_id
-
NFEモデルの識別子。
- lp_rule_id
- 線-点接続性ルールの識別子。LINE_POINT_RULE表に存在する必要があります。
- points
- 検索が実行される点フィーチャの配列。(SDO_INTERACT_POINT_FEAT_ARRAY型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
使用上の注意
このファンクションは主に、特定の接続性ルールに合致した線フィーチャもあれば、合致しなかったものもあるといった線フィーチャの混成グループを戻すSDO_NFE.GET_INTERACTION_GROUPSファンクションの後に使用します。
例
次の例では、線-点ルールに合致する特定の点フィーチャを取得します。
DECLARE model_id NUMBER := 1; lp_rule_id NUMBER := 1; rule_points_indexes dbms_sql.NUMBER_TABLE; inter_grps SDO_INTERACTION_ARRAY; BEGIN -- Get the groups of interacting features that meet the L-P Rule in the model inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_POINT, lp_rule_id ); -- For each group: FOR i IN 1..inter_grps.count loop -- Get the specific point features that match the L-P rule. rule_points_indexes := sdo_nfe.get_points_match_lp_rule( model_id, lp_rule_id, inter_grps(i).points ); END loop; END; /
7.23 SDO_NFE.IMPORT_NETWORK
構文
SDO_NFE.IMPORT_NETWORK( model_id IN NUMBER, model_id IN NUMBER, network_from IN VARCHAR2, line_ft_layer_id IN NUMBER, line_ft_class_id IN NUMBER, point_ft_layer_id IN NUMBER, point_ft_class_id IN NUMBER);
説明
既存のネットワークからNFEモデル(SDO_NFE.FROM_SCRATCHモードで作成)の基礎となるネットワークに、線フィーチャ・クラス(line_ft_class_id)の線フィーチャ内の各リンクおよび点フィーチャ・クラス(point_ft_class_id)の点フィーチャ内の各ノードを変換して、ネットワーク要素をコピーします。
パラメータ
使用上の注意
線フィーチャおよび点フィーチャのフィーチャ・クラスはNFEモデルにすでに存在している必要があります。
例
次の例では、NET01
という名前のネットワークをID 1で識別されるモデルにインポートします。線フィーチャおよび点フィーチャは、リンクおよびノードのそれぞれにフィーチャ・レイヤーの10と11およびフィーチャ・クラスの5と6を使用して作成されます。
EXECUTE SDO_NFE.import_network(1, ‘NET01’, 10, 5, 11, 6);
7.24 SDO_NFE.SET_MODEL_UNDERLYING_NETWORK
構文
SDO_NFE.SET_MODEL_UNDERLYING_NETWORK( model_id IN SDO_NUMBER network_name IN VARCHAR2);
説明
NFEモデルの基礎となるネットワークとしてネットワークを関連付けます。(モデルはSDO_NFE.OVER_EXIST_NETWORKモードで作成しておく必要があります。)
使用上の注意
SDO_NFE.GET_MODEL_UNDERLYING_NETWORKファンクションも参照してください。
例
次に例を示します。
EXECUTE ... ;