書式
SDO_GEOM.SDO_XOR( geom1 IN SDO_XOR, dim1 IN SDO_DIM_ARRAY, geom2 IN SDO_GEOMETRY, dim2 IN SDO_DIM_ARRAY ) RETURN SDO_GEOMETRY;
または
SDO_GEOM.SDO_XOR( geom1 IN SDO_GEOMETRY, geom2 IN SDO_GEOMETRY, tol IN NUMBER ) RETURN SDO_GEOMETRY;
説明
2つのジオメトリ・オブジェクトで位相的に排他的論理和(XOR演算)となるジオメトリ・オブジェクトを戻します。
パラメータ
ジオメトリ・オブジェクト。
geom1
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
ジオメトリ・オブジェクト。
geom2
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
許容差(「許容差」を参照)。
使用上の注意
図23-5のグレーの領域は、四角形geom1
ともう1つのポリゴンgeom2
でSDO_XORを使用した場合に戻されるポリゴンです。
geom1
およびgeom2
が異なる座標系に基づく場合、例外が発生します。
例
次の例では、cola_a
とcola_c
の位相的な排他的論理和(XOR演算)となるジオメトリ・オブジェクトを戻します。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)
-- Return the topological symmetric difference of two geometries. SELECT SDO_GEOM.SDO_XOR(c_a.shape, m.diminfo, c_c.shape, m.diminfo) FROM cola_markets c_a, cola_markets c_c, user_sdo_geom_metadata m WHERE m.table_name = 'COLA_MARKETS' AND m.column_name = 'SHAPE' AND c_a.name = 'cola_a' AND c_c.name = 'cola_c'; SDO_GEOM.SDO_XOR(C_A.SHAPE,M.DIMINFO,C_C.SHAPE,M.DIMINFO)(SDO_GTYPE, SDO_SRID, S -------------------------------------------------------------------------------- SDO_GEOMETRY(2007, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1, 19, 1003, 1), SDO _ORDINATE_ARRAY(1, 7, 1, 1, 5, 1, 5, 3, 3, 3, 4, 5, 5, 5, 5, 7, 1, 7, 5, 5, 5, 3 , 6, 3, 6, 5, 5, 5))
戻されるポリゴンは複数ポリゴン(SDO_GTYPE = 2007)であり、SDO_ORDINATE_ARRAYには、次の2つのポリゴンが記述されています。1つは(1, 7)で開始および終了し、もう1つは(5, 5)で開始および終了します。