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