35.81 SDO_UTIL.TO_JSON_VARCHAR
書式
SDO_UTIL.TO_JSON_VARCHAR( geometry IN SDO_GEOMETRY ) RETURN VARCHAR2;
説明
SDO_GEOMETRYオブジェクトをVARCHAR2形式のJSONオブジェクトに変換します。
使用上のノート
Oracle Databaseに格納されているJSONデータの使用の詳細は、『Oracle Database JSON開発者ガイド』を参照してください。
SpatialによるJSONのサポートの詳細は、Oracle SpatialでのJSONおよびGeoJSONのサポートを参照してください。
このファンクション(VARCHAR2の結果を戻す)の実行速度は、SDO_UTIL.TO_JSON (CLOBの結果を戻す)より速いです。ただし、非常に小さいジオメトリでしか使用できません。4000バイト超(またはデータベース・パラメータMAX_STRING_SIZEがEXTENDEDに設定されている場合は、32767バイト)のJSONを生成するジオメトリは、切り捨てられた無効なJSONオブジェクトとなります。
JSON形式のジオメトリをSDO_GEOMETRYオブジェクトに変換するには、SDO_UTIL.FROM_JSONファンクションを使用します。
例
次の例では、JSON形式への変換と逆変換を示します。(例では、「空間データの挿入、索引付けおよび問合せの例」の特にCOLA_MARKETS表のcola_b
ジオメトリについて、その定義およびデータを使用しています。)
DECLARE cola_b_geom SDO_GEOMETRY; returned_geom SDO_GEOMETRY; returned_json VARCHAR2(4000); BEGIN -- Populate geometry variable with cola market cola_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_VARCHAR(cola_b_geom); -- From JSON to geometry returned_geom := SDO_UTIL.FROM_JSON(returned_json); END; /
次の例では、指定したジオメトリを表すGeoJSONオブジェクトを示します。(この場合、ジオメトリ定義は、COLA_MARKETS表のcola_b
ジオメトリ(「空間データの挿入、索引付けおよび問合せの例」を参照)を反映します。)
SELECT SDO_UTIL.TO_JSON_VARCHAR( 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))) JSON FROM DUAL; 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]]}}]}}
親トピック: SDO_UTILパッケージ(ユーティリティ)