35.22 SDO_UTIL.FROM_JSON

書式

SDO_UTIL.FROM_JSON(
     geometry  IN JSON, 
     crs       IN VARCHAR2 DEFAULT NULL, 
     srid      IN VARCHAR2 DEFAULT -1 
     ) RETURN SDO_GEOMETRY;

または

SDO_UTIL.FROM_JSON(
     geometry  IN CLOB, 
     crs       IN VARCHAR2 DEFAULT NULL, 
     srid      IN VARCHAR2 DEFAULT -1 
     ) RETURN SDO_GEOMETRY;

説明

JSONオブジェクト(より具体的にはJSON形式のジオメトリ・オブジェクト)をSpatialジオメトリ・オブジェクトに変換します。

パラメータ

geometry

SDO_GEOMETRY形式に変換する、JSON形式のジオメトリを指定します。このJSONオブジェクトのデータ型は、JSONまたはCLOBにできます。

crs

(将来使用するために予約されています。デフォルトはnullです。)

srid

(将来使用するために予約されています。デフォルトは-1です。)

使用上のノート

ノート:

SDO_UTIL.FROM_JSONファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでOracle JVMが有効になっている場合にのみサポートされます。Oracle JVMを有効にするには、Oracle Autonomous Databaseサーバーレスの使用Oracle Javaの使用で詳細を参照してください。

入力ジオメトリはJSON形式である必要があります。Oracle Databaseに格納されているJSONデータの使用の詳細は、『Oracle Database JSON開発者ガイド』を参照してください。

SpatialによるJSONのサポートの詳細は、Oracle SpatialでのJSONおよびGeoJSONのサポートを参照してください。

SDO_GEOMETRYオブジェクトをJSON形式に変換するには、SDO_UTIL.TO_JSONファンクションまたはSDO_UTIL.TO_JSON_VARCHARファンクションを使用します。

次の例では、JSON形式への変換と逆変換を示します。(例では、「空間データの挿入、索引付けおよび問合せの例」の特にCOLA_MARKETS表のcola_bジオメトリについて、その定義およびデータを使用しています。)

DECLARE
  cola_b_geom   SDO_GEOMETRY;
  returned_geom SDO_GEOMETRY;
  returned_json CLOB;
BEGIN
  -- Populate geometry variable with cola market cols_b shape.
  SELECT c.shape into cola_b_geom 
  FROM cola_markets c   
  WHERE c.name = 'cola_b';  

  -- From geometry to JSON 
  returned_json := SDO_UTIL.TO_JSON(cola_b_geom);

  -- From JSON to geometry 
  returned_geom := SDO_UTIL.FROM_JSON(returned_json);
  
END; 
/

次の例では、SDO_GEOMETRYへの変換対象となる指定のジオメトリを表すJSONオブジェクトを示します。(この場合、JSONは、「空間データの挿入、索引付けおよび問合せの例」で定義した、COLA_MARKETS表のcola_bジオメトリを反映します。)

SELECT SDO_UTIL.FROM_JSON(
  '{"polygon": {"boundary": [{"line": {"datapoints": [[5.0, 1.0], 
       [8.0, 1.0], [8.0, 6.0], [5.0, 7.0], [5.0, 1.0]]}}]}}') GEOM
FROM DUAL;

GEOM
------
SDO_GEOMETRY(2003, NULL, NULL, 
  SDO_ELEM_INFO_ARRAY(1, 1003, 1), 
  SDO_ORDINATE_ARRAY(5, 1, 8, 1, 8, 6, 5, 7, 5, 1))