プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

24.6 SDO_LRS.CONVERT_TO_LRS_LAYER

書式

SDO_LRS.CONVERT_TO_LRS_LAYER(
     table_name     IN VARCHAR2, 
     column_name    IN VARCHAR2 
     [, lower_bound IN NUMBER, 
     upper_bound    IN NUMBER, 
     tolerance      IN NUMBER] 
     ) RETURN VARCHAR2;

または

SDO_LRS.CONVERT_TO_LRS_LAYER(
     table_name     IN VARCHAR2, 
     column_name    IN VARCHAR2, 
     dim_name       IN VARCHAR2, 
     dim_pos        IN INTEGER 
     [, lower_bound IN NUMBER, 
     upper_bound    IN NUMBER, 
     tolerance      IN NUMBER] 
     ) RETURN VARCHAR2;

説明

SDO_GEOMETRY型の列のすべてのジオメトリ・オブジェクト(レイヤー)を、メジャー情報を持たない標準の線ストリング・ジオメトリからメジャー情報を持つLRSジオメトリ・セグメントに変換します。また、USER_SDO_GEOM_METADATAビューのメタデータを更新します。

パラメータ

table_name

SDO_GEOMETRYオブジェクトを持つ列を含む表を指定します。

column_name

SDO_GEOMETRYオブジェクトを含むtable_nameの列を指定します。

dim_name

メジャー次元の名前を指定します。このパラメータがNULLである場合、Mが使用されます。

dim_pos

指定されたSDO_GEOMETRY列のSDO_DIM_ARRAY構造内におけるメジャー次元の位置を指定します。このパラメータがNULLである場合、最後の位置に対応する数が使用されます。

lower_bound

メジャー次元の縦座標の下限(SDO_DIM_ELEMENT定義のSDO_LB値)を指定します。

upper_bound

メジャー次元の縦座標の上限(SDO_DIM_ELEMENT定義のSDO_UB値)を指定します。

tolerance

許容差を指定します(「許容差」および「LRSファンクションの許容差」を参照)。デフォルト値は0.00000001です。

使用上の注意

このファンクションは、変換が正常に行われた場合、またはレイヤーがすでにメジャー情報を含む場合はTRUEを戻します。また、変換が失敗した場合は例外を戻します。

表の既存の次元情報が無効な場合は、例外が発生します。

メジャー値は、開始メジャー0(ゼロ)および地図上の長さを表す終了メジャーに基づいて割り当てられます。

column_nameにすでに空間索引が存在する場合、レイヤーの変換前にその索引を削除し、レイヤーの変換後に新しい索引を作成する必要があります。索引の削除および作成については、「空間データを索引付けするためのSQL文」に示すDROP INDEX文およびCREATE INDEX文の説明を参照してください。

このファンクションは_3D 形式(SDO_LRS.CONVERT_TO_LRS_LAYER_3D)が使用可能です。LRSファンクションの3D形式については、「LRSファンクションの3D形式」を参照してください。

変換ファンクションの詳細は、「LRSジオメトリの変換」を参照してください。

次の例では、LRS_ROUTES表のROUTE_GEOMETRY列のジオメトリ・セグメントをLRSフォーマットに変換します。(例では、「LRSファンクションの例」の例の定義を使用しています。)SELECT文は次元情報が追加されていることを示します(定義には、SDO_DIM_ELEMENT('M', NULL, NULL, NULL)が含まれます)。

BEGIN
  IF (SDO_LRS.CONVERT_TO_LRS_LAYER('LRS_ROUTES', 'ROUTE_GEOMETRY') =  'TRUE')
    THEN
      DBMS_OUTPUT.PUT_LINE('Conversion from STD_LAYER to LRS_LAYER succeeded.');
    ELSE
      DBMS_OUTPUT.PUT_LINE('Conversion from STD_LAYER to LRS_LAYER failed.');
  END IF;
END;
.
/
Conversion from STD_LAYER to LRS_LAYER succeeded.

PL/SQL procedure successfully completed.

SQL> SELECT diminfo FROM user_sdo_geom_metadata WHERE table_name = 'LRS_ROUTES' AND column_name = 'ROUTE_GEOMETRY';

DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)                             
--------------------------------------------------------------------------------
SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 0, 20, .005), SDO_DIM_ELEMENT('Y', 0, 20, .00
5), SDO_DIM_ELEMENT('M', NULL, NULL, NULL))