JSON_DATAGUIDE

目的

集計ファンクションJSON_DATAGUIDEは、表のJSONデータの列を入力として取り、データ・ガイドをCLOBとして戻します。列の各行は、JSONドキュメントと呼ばれます。このファンクションは、列のJSONドキュメントごとに、そのJSONドキュメントのフラット・データ・ガイドを含むCLOB値を戻します。

JSON_DATAGUIDEで、GeoJSONタイプを検出できます。

expr

exprは、JSONオブジェクトまたはJSON配列に評価されるSQL式です。

書式オプション

返されるデータ・ガイドの書式を指定するには、書式オプションを使用します。次の値のうち1つを設定する必要があります。

  • フラット構造の場合はdbms_json.format_flat

  • 階層構造の場合はdbms_json.format_hierarchical

フラグのオプション

flagは、次の値を持つことができます。

  • 戻されるデータ・ガイドを、適切なインデントで読みやすくするには、DBMS_JSON.PRETTYを指定します。

  • データ・ガイドでGeoJSONタイプを自動的に検出するには、DBMS_JSON.GEOJSONを指定します。

  • データ・ガイドでGeoJSONタイプを自動的に検出し、戻されたデータ・ガイドを読みやすくするには、DBMS_JSON.GEOJSON+DBMS_JSON.PRETTYを指定します。

データ・ガイドによって作成されたビューアには、sdo_geometryタイプに対応する列があります。

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
       }
     ]
. . .