SDO_GEOMETRYオブジェクト型(「SDO_GEOMETRYオブジェクト型」を参照)には、ジオメトリ・オブジェクトの情報を取得するメソッド(メンバー・ファンクション)があります。表2-3に、これらのメソッドを示します。
表2-3 SDO_GEOMETRYのメソッド
Name | 戻り値 | 説明 |
---|---|---|
NUMBER |
SDO_GTYPE値に指定された、ジオメトリ・オブジェクトの次元数を戻します。Oracle Spatial and Graphでは、Get_DimsメソッドとST_CoordDimメソッドは、同じ結果を戻します。 |
|
NUMBER |
SDO_GTYPE値に指定された、ジオメトリ・オブジェクトのジオメトリ・タイプを戻します。 |
|
NUMBER |
SDO_GTYPE値に指定された、LRSジオメトリ・オブジェクトのメジャー次元を戻します。 戻り値0(ゼロ)は、ジオメトリが、標準の(非LRS)ジオメトリであるか、またはリリース1(9.0.1)より前の形式のLRSジオメトリでメジャーがデフォルトの(最後の)次元にあることを示します。3は3つ目の次元にメジャー情報が含まれ、4は4つ目の次元にメジャー情報が含まれていることを示します。 |
|
BLOB |
ジオメトリ・オブジェクトのwell-knownバイナリ(WKB)形式を戻します。(戻されるオブジェクトに、SRID情報は含まれません。) |
|
CLOB |
ジオメトリ・オブジェクトのwell-knownテキスト(WKT)形式(「well-knownテキスト(WKT)」を参照)を戻します。(戻されるオブジェクトに、SRID情報は含まれません。) |
|
NUMBER |
ジオメトリ・オブジェクトの座標次元(ISO/IEC SQL Multimedia規格により定義)を戻します。Oracle Spatial and Graphでは、Get_DimsメソッドとST_CoordDimメソッドは、同じ結果を戻します。 |
|
NUMBER |
ジオメトリ・オブジェクトが無効な場合は0(ゼロ)、有効な場合は1を戻します。(ISO/IEC SQL Multimedia規格では、このようなコンテキストの場合、「有効」のかわりに「well formed (整形式)」という語句が使用されています。) このメソッドでは、0.001が許容差として使用されます。(許容差については、「許容差」を参照してください。)許容差を別途指定する場合、またはジオメトリが無効である理由の詳細情報を取得する場合は、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションを使用します。このファンクションの詳細は、「SDO_GEOMパッケージ(ジオメトリ)」を参照してください。 |
例2-2に、ほとんどのSDO_GEOMETRYメソッドを示します。(Get_WKBメソッドは、出力をSQL*Plusで表示できないため、含まれていません。)
例2-2 SDO_GEOMETRYのメソッド
SELECT c.shape.Get_Dims() FROM cola_markets c WHERE c.name = 'cola_b'; C.SHAPE.GET_DIMS() ------------------ 2 SELECT c.shape.Get_GType() FROM cola_markets c WHERE c.name = 'cola_b'; C.SHAPE.GET_GTYPE() ------------------- 3 SELECT a.route_geometry.Get_LRS_Dim() FROM lrs_routes a WHERE a.route_id = 1; A.ROUTE_GEOMETRY.GET_LRS_DIM() ------------------------------ 3 SELECT c.shape.Get_WKT() FROM cola_markets c WHERE c.name = 'cola_b'; C.SHAPE.GET_WKT() -------------------------------------------------------------------------------- POLYGON ((5.0 1.0, 8.0 1.0, 8.0 6.0, 5.0 7.0, 5.0 1.0)) SELECT c.shape.ST_CoordDim() FROM cola_markets c WHERE c.name = 'cola_b'; C.SHAPE.ST_COORDDIM() --------------------- 2 SELECT c.shape.ST_IsValid() FROM cola_markets c WHERE c.name = 'cola_b'; C.SHAPE.ST_ISVALID() -------------------- 1