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