26.17 GET_SDO_GEOMETRYファンクション

このファンクションは、GeoJSONメンバーからSDO_GEOMETRYメンバー値を戻します。このファンクションでは、2次元ジオメトリ・オブジェクトのみがサポートされています。

ノート:

このファンクションは、SDO_GEOMETRY (Oracle Locator)がデータベースにインストールされている場合にのみ使用できます。

構文

APEX_JSON.GET_SDO_GEOMETRY FUNCTION (
    p_path             IN VARCHAR2,
    p0                 IN VARCHAR2  DEFAULT NULL,
    p1                 IN VARCHAR2  DEFAULT NULL,
    p2                 IN VARCHAR2  DEFAULT NULL,
    p3                 IN VARCHAR2  DEFAULT NULL,
    p4                 IN VARCHAR2  DEFAULT NULL,
    p_srid             IN NUMBER    DEFAULT 4326,
    p_values           IN t_values  DEFAULT g_values )
    RETURN mdsys.sdo_geometry;

パラメータ

表26-18 GET_SDO_GEOMETRYのパラメータ

パラメータ 説明
p_values 解析されたJSONメンバー。デフォルトはg_valuesです。
p_path p_valuesへの索引。
p[0-4] p_path%NはそれぞれpNに置換され、i-th %sまたは%dはそれぞれp[i-1]に置換されます。
p_default メンバーが存在しない場合のデフォルト値。
p_srid SDO_GEOMETRYを戻す座標系(SRID)。

戻り値

表26-19 GET_SDO_GEOMETRYの戻り値

戻り値 説明
ジオメトリ 指定されたパスの位置にある値。

Raises

表26-20 GET_SDO_GEOMETRYでの発生値

発生値 説明
VALUE_ERROR p_values(p_path)がGeoJSONオブジェクトでない場合。

次の例では、JSON文字列を解析し、位置にある値を出力します。

DECLARE
    j apex_json.t_values;
BEGIN
    apex_json.parse(j, '{ "items": [ 1, 2, { "geom": {"type":"Point","coordinates":[-122.7783356,38.8198318,1.85 ] } } ] }');
    dbms_output.put_line(to_char(apex_json.get_sdo_geometry (
                                     p_values => j,
                                     p_path   => 'items[%d].geom',
                                     p0       => 3) ) );
END;