書式
SDO_CS.DETERMINE_CHAIN( transient_rule_set IN SDO_TRANSIENT_RULE_SET, use_case IN VARCHAR2, source_srid IN NUMBER, target_srid IN NUMBER) RETURN TFM_PLAN;
説明
システムのルール・セットに基づいて、座標参照系間の変換で使用する問合せの連鎖を戻します。
パラメータ
変換で使用するルール・セットを指定します。NULL値を指定すると、Oracleシステムのルール・セットが使用されます。
問合せの連鎖を決定するユースケースを指定します。この値は、NULL値またはSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)のUSE_CASE列の値である必要があります。
ソース座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。
ターゲット座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。
使用上の注意
このファンクションは、TFM_PLAN型のオブジェクトを戻します(「TFM_PLANオブジェクト型」を参照)。
transient_rule_set
パラメータはSDO_TRANSIENT_RULE_SET型で、次のように定義されています。
CREATE TYPE sdo_transient_rule_set AS OBJECT ( source_srid NUMBER, target_srid NUMBER, tfm NUMBER);
例
次の例では、システムのルール・セットに基づいて問合せの連鎖を戻します。
SELECT MDSYS.SDO_CS.DETERMINE_CHAIN(NULL, NULL, 4804, 4257) FROM DUAL; MDSYS.SDO_CS.DETERMINE_CHAIN(NULL,NULL,4804,4257)(THE_PLAN) -------------------------------------------------------------------------------- TFM_PLAN(SDO_TFM_CHAIN(4804, -2, 4257))
次の例では、SRID 4804からSRID 4257への変換用に指定した連鎖を持つ、優先する連結操作(操作ID 300)を作成し、DETERMINE_CHAINファンクションをコールして異なる結果を戻します。(この例で作成した操作は実用的ではありません。参考用として作成されたものです。)
CALL SDO_CS.CREATE_PREF_CONCATENATED_OP( 300, 'CONCATENATED OPERATION', TFM_PLAN( SDO_TFM_CHAIN( 4804, 1000000001, 4804, 1000000002, 4804, 1000000001, 4804, 1000000001, 4804, 1000000002, 4804, 1000000002, 4804, 1000000001, 4804, 1000000001, 4804, 1000000001, 4804, 1000000002, 4804, 1000000002, 4804, 1000000002, 4257)), NULL); SELECT MDSYS.SDO_CS.DETERMINE_CHAIN(NULL, NULL, 4804, 4257) FROM DUAL; MDSYS.SDO_CS.DETERMINE_CHAIN(NULL,NULL,4804,4257)(THE_PLAN) -------------------------------------------------------------------------------- TFM_PLAN(SDO_TFM_CHAIN(4804, 300, 4257))