JSON_DATAGUIDE
目的
集計ファンクションJSON_DATAGUIDE
は、表のJSONデータの列を入力として取り、データ・ガイドをCLOB
として戻します。列の各行は、JSONドキュメントと呼ばれます。このファンクションは、列のJSONドキュメントごとに、そのJSONドキュメントのフラット・データ・ガイドを含むCLOB
値を戻します。
expr
expr
は、JSONオブジェクトまたはJSON配列に評価されるSQL式です。
書式オプション
返されるデータ・ガイドの書式を指定するには、書式オプションを使用します。次の値のうち1つを設定する必要があります。
-
フラット構造の場合は
dbms_json.format_flat
。 -
階層構造の場合は
dbms_json.format_hierarchical
。
データ・ガイドに適切なインデントを追加して読みやすくするには、いずれかの書式オプションに加えてdbms_json.pretty
を指定します。
JSON_DATAGUIDEの制限事項
シャード・カタログ・サーバーではこのファンクションは実行できません。
関連項目:
データ・ガイドの詳細は、Oracle Database JSON開発者ガイドを参照してください。
例
次の例では、「JSONドキュメントを含む表の作成: 例」で作成されるj_purchaseorder
表を使用します。この表には、po_document
と呼ばれるJSONデータの列が含まれます。この例では、列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 } ] . . .