書式
SDO_AGGR_LRS_CONCAT( AggregateGeometry SDOAGGRTYPE ) RETURN SDO_GEOMETRY;
説明
指定されたLRSジオメトリを連結するLRSジオメトリを戻します。
パラメータ
ジオメトリ列および次元配列を指定するSDOAGGRTYPE型のオブジェクト(「SDOAGGRTYPEオブジェクト型」を参照)を指定します。
使用上の注意
このファンクションは、任意の数のLRSジオメトリの集計連結を実行します。ジオメトリを連結する順序を制御する必要がある場合、NO_MERGEオプティマイザ・ヒントおよびORDER BY句を指定した副問合せを使用する必要があります。(例を参照。)
結果のセグメントの方向は、連結内の最初のジオメトリの方向と同じになります。
このファンクションは3D形式(SDO_AGGR_LRS_CONCAT_3D)が使用可能です。LRSファンクションの3D形式については、「LRSファンクションの3D形式」を参照してください。
Spatial and Graphの線形参照システムについては、「線形参照システム」を参照してください。
例
次の例では、LRS_ROUTES表にLRSジオメトリを追加し、次に、表に含まれるLRSジオメトリを連結する2つの問合せを実行します。最初の問合せでは、連結の順序は制御されません。2番目の問合せで制御されます。2つのセグメントの方向が異なることに注意してください。連結(Route0
)の最初のセグメントのメジャー値が降順であるため、2番目の問合せ結果のセグメントのメジャー値は降順です。(例では、「LRSファンクションの例」の例の定義を使用しています。)
-- Add a segment with route_id less than 1 (here, zero). INSERT INTO lrs_routes VALUES( 0, 'Route0', SDO_GEOMETRY( 3302, -- Line string; 3 dimensions (X,Y,M); 3rd is measure dimension. NULL, NULL, SDO_ELEM_INFO_ARRAY(1,2,1), -- One line string, straight segments SDO_ORDINATE_ARRAY( 5,14,5, -- Starting point - 5 is measure from start. 10,14,0) -- Ending point - 0 measure (decreasing measure) ) ); 1 row created. -- Concatenate all routes (no ordering specified). SELECT SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(route_geometry, 0.005)) FROM lrs_routes; SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(ROUTE_GEOMETRY,0.005))(SDO_GTYPE, SDO_SRID -------------------------------------------------------------------------------- SDO_GEOMETRY(3302, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY( 2, 2, 0, 2, 4, 2, 8, 4, 8, 12, 4, 12, 12, 10, 18, 8, 10, 22, 5, 14, 27, 10, 14, 32)) -- Aggregate concatenation using subquery for ordering. SELECT SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(route_geometry, 0.005)) FROM ( SELECT /*+ NO_MERGE */ route_geometry FROM lrs_routes ORDER BY route_id); SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(ROUTE_GEOMETRY,0.005))(SDO_GTYPE, SDO_SRID -------------------------------------------------------------------------------- SDO_GEOMETRY(3302, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY( 2, 2, 32, 2, 4, 30, 8, 4, 24, 12, 4, 20, 12, 10, 14, 8, 10, 10, 5, 14, 5, 10, 14 , 0))