25.5 SQL/JSONファンクションJSON_OBJECTAGG
SQL/JSONファンクションjson_objectagg
は、グループ化されたSQL問合せの複数行の情報をオブジェクト・メンバーとして集計して、JSONオブジェクトを構成します。
結果のオブジェクトに含まれるメンバーの数が引数の数を直接反映するSQL/JSONファンクションjson_object
の場合とは異なり、json_objectagg
では、結果のオブジェクトのサイズは現在の問合せ対象データを反映します。このように、問合せ対象のデータによって結果のサイズが変わる可能性があります。
例25-10 JSON_OBJECTAGGを使用したJSONオブジェクトの構成
この例では、表hr.departments
(標準のデータベース・スキーマHR
)から単一のJSONオブジェクトを構成します。その際、列department_name
から取得したフィールド名と列department_id
から取得したフィールド値が使用されます。
SQL/JSON条件is json
と同様に、キーワードSTRICT
およびWITH UNIQUE KEYS
はファンクションjson_object
およびjson_objectagg
とともに使用できます。それぞれの動作はis json
と同じです。
SELECT json_objectagg(department_name VALUE department_id)
FROM departments;
-- The returned object is pretty-printed here for clarity.
-- The order of the object members is arbitrary.
JSON_OBJECTAGG(DEPARTMENT_NAMEISDEPARTMENT_ID)
----------------------------------------------
{"Administration": 10,
"Marketing": 20,
"Purchasing": 30,
"Human Resources": 40,
"Shipping": 50,
"IT": 60,
"Public Relations": 70,
"Sales": 80,
"Executive": 90,
"Finance": 100,
"Accounting": 110,
"Treasury": 120,
"Corporate Tax": 130,
"Control And Credit": 140,
"Shareholder Services": 150,
"Benefits": 160,
"Manufacturing": 170,
"Construction": 180,
"Contracting": 190,
"Operations": 200,
"IT Support": 210,
"NOC": 220,
"IT Helpdesk": 230,
"Government Sales": 240,
"Retail Sales": 250,
"Recruiting": 260,
"Payroll": 270}
関連項目:
SQL/JSONファンクションjson_objectagg
の詳細は、Oracle Database SQL言語リファレンスを参照してください。
関連トピック
親トピック: SQLを使用したJSONデータの生成