図2-5に、1つのまっすぐな線分と1つの円弧で構成される複合線ストリングとして表される三日月形のオブジェクトを示します。この形を表すには4つの点が必要で、(10,10)と(10,14)の点はまっすぐな線分を表し、(10,14)、(6,10)および(14,10)の点は円弧を表します。
図2-5に示すジオメトリのSDO_GEOMETRY定義は、次のとおりです。
SDO_GTYPE = 2002。最初の2は2次元を示し、2番目の2は1つ以上の線分を示します。
SDO_SRID = NULL。
SDO_POINT = NULL。
SDO_ELEM_INFO = (1,4,2, 1,2,1, 3,2,2)。3つの値で構成される3つの要素1,4,2、1,2,1および3,2,2があります。
最初の組は、この要素が、後の2組を使用して記述されている2つのサブ要素線ストリングで構成される複合線ストリングであることを示します。
2番目の組は、線ストリングが直線セグメントで構成され、かつこの線ストリングに対する座標がオフセット1から開始していることを示しています。この線ストリングの終了点は2番目の線ストリングの開始オフセット(このインスタンスでは3)によって決定されます。
3つの値で構成される3番目の要素は、2番目の線ストリングが、オフセット3で始まる縦座標が指定された円弧で構成されることを示しています。この線ストリングの終了点は、次の要素の開始オフセットによって決まりますが、これが最後の要素である場合は、SDO_ORDINATES配列の現在の長さで決まります。
SDO_ORDINATES = (10,10, 10,14, 6,10, 14,10)。
例2-8に、図2-5のジオメトリをデータベースに挿入するSQL文を示します。
例2-8 複合線ストリングを挿入するSQL文
INSERT INTO cola_markets VALUES( 11, 'compound_line_string', SDO_GEOMETRY( 2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,4,2, 1,2,1, 3,2,2), -- compound line string SDO_ORDINATE_ARRAY(10,10, 10,14, 6,10, 14,10) ) );