JSON_DATAGUIDE
目的
集計ファンクションJSON_DATAGUIDEは、JSONデータのセットのデータ・ガイドを計算します。データ・ガイドはCLOBとして返され、渡される形式パラメータに応じてフラット形式または階層形式のいずれかになります。
expr
exprは、JSONオブジェクトまたはJSON配列に評価されるSQL式です。表のJSON列にすることもできます。
書式オプション
返されるデータ・ガイドの書式を指定するには、書式オプションを使用します。次の値のうち1つを設定する必要があります。
-
フラット形式の場合は
dbms_json.format_flat。 -
階層形式の場合は
dbms_json.format_hierarchical。 -
JSONドキュメントの検証に使用できるJSONスキーマのデータ・ガイドの場合は
dbms_json.format_schema。
パラメータがない場合、デフォルトはdbms_json.format_flatです。
『JSON開発者ガイド』の「データ・ガイドの形式およびデータ・ガイドの作成方法」を参照してください。
フラグのオプション
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
}
]
. . .