JSON_DATAGUIDE
目的
集計ファンクションJSON_DATAGUIDE
は、JSONデータのセットのデータ・ガイドを計算します。データ・ガイドはCLOB
として返され、渡される形式パラメータに応じてフラット形式または階層形式のいずれかになります。
expr
expr
は、JSONオブジェクトまたはJSON配列に評価されるSQL式です。表のJSON列にすることもできます。
書式オプション
返されるデータ・ガイドの書式を指定するには、書式オプションを使用します。次の値のうち1つを設定する必要があります。
-
フラット形式の場合は
dbms_json.format_flat
。 -
階層形式の場合は
dbms_json.format_hierarchical
。
パラメータがない場合、デフォルトはdbms_json.format_flat
です。
フラグのオプション
flag
は、次の値を持つことができます。
-
DBMS_JSON.PRETTY
を指定すると、返されるデータ・ガイドが適切なインデントで読みやすくなります。 -
データ・ガイドで
GeoJSON
タイプを自動的に検出するには、DBMS_JSON.GEOJSON
を指定します。データ・ガイドによって作成される対応するビュー列は、sdo_geometry
タイプになります。 -
DBMS_JSON.GATHER_STATS
を指定すると、データ・ガイドで統計情報が収集されます。DBMS_JSON.GATHER_STATS
で生成されたデータ・ガイド・レポートには、DBMS_JSON.get_index_dataguide
で取得する他のすべての統計フィールドに加えて、新しいフィールドo:sample_size
があります。 -
データ・ガイドに
DBMS_JSON.DETECT_DATETIME
を指定して、一時型を検出します。データ・ガイドでは、ISO 8601形式に準拠したJSONフィールド値を、文字列型ではなくタイムスタンプ型としてレポートします。 -
すべての値
DBMS_JSON.PRETTY
、DBMS_JSON.GEOJSON
およびDBMS_JSON.GATHER_STATS
とDBMS_JSON.DETECT_DATETIME
をプラス記号で組み合せることができます。たとえば、DBMS_JSON.GEOJSON+DBMS_JSON.PRETTY
またはDBMS_JSON.GEOJSON+DBMS_JSON.PRETTY+DBMS_JSON.GATHER_STATS
です。
関連項目:
例
次の例では、「JSONドキュメントを含む表の作成: 例」で作成されるj_purchaseorder
表を使用します。この表には、po_document
と呼ばれるJSONデータの列が含まれます。この例では、年グループごとにフラット・データ・ガイドを返します。
SELECT EXTRACT(YEAR FROM date_loaded) YEAR, JSON_DATAGUIDE(po_document) "DATA GUIDE" FROM j_purchaseorder GROUP BY extract(YEAR FROM date_loaded) ORDER BY extract(YEAR FROM date_loaded) DESC; YEAR DATA GUIDE ---- ------------------------------------------ 2016 [ { "o:path" : "$.PO_ID", "type" : "number", "o:length" : 4 }, { "o:path" : "$.PO_Ref", "type" : "string", "o:length" : 16 }, { "o:path" : "$.PO_Items", "type" : "array", "o:length" : 64 }, { "o:path" : "$.PO_Items.Part_No", "type" : "number", "o:length" : 16 }, { "o:path" : "$.PO_Items.Item_Quantity", "type" : "number", "o:length" : 2 } ] . . .