説明
JSON_ARRAY()関数は、一連のSQLスカラー式を計算し、各式をJSON値に変換して、これらのJSON値を含むJSON配列を構築します。
JSON_ARRAY()では、パラメータ式の計算結果をJSONオブジェクト、JSON配列、数値文字列、テキスト文字列、日付、タイムスタンプ、またはNULLと指定できます。この関数は、数値文字列をJSON数値に変換し、テキスト文字列をJSON文字列値に変換します。日付とタイムスタンプデータ型は、生成されたJSONオブジェクトまたは配列内でISO 8601日付形式に従うJSON文字列として出力されます。
構文
JSON_ARRAY (
[val [FORMAT JSON], val [FORMAT JSON] ...]
[ABSENT|NULL ON NULL]
[RETURNING JSON | CLOB| BLOB| VARCAHR2| VARCHAR2[size]]
[STRICT] )
構文の説明
JSON_ARRAY()関数の構文は以下のとおりです:
FORMAT JSON: オプションの句で、入力された文字列がJSONテキストであることを指定し、出力時にはクォート('"')を追加する必要がないことを示します。ABSENT|NULL ON NULL: 空値の処理を指定するためのオプションの句です。NULL ON NULL: 現在の式がJSONのNULL型を返します。ABSENT ON NULL: 式の計算結果がNULL場合、現在の式を無視します。RETURNING JSON | CLOB| BLOB| VARCAHR2| VARCHAR2[size]: 返される値の型を指定するためのオプションの句です。STRICT: 出力が有効なJSON形式であるかどうかを検証するためのオプションの句です。
例
# ネスト式式およびNULL ON NULL句の使用
obclient> SELECT JSON_ARRAY (JSON_ARRAY(1,2,3),100,'California',null NULL ON NULL) "JSON Array Example"
FROM DUAL;
+-----------------------------------+
| JSON Array Example |
+-----------------------------------+
| ["[1,2,3]",100,"California",null] |
+-----------------------------------+
1 row in set
# ABSENT ON NULL句が有効になり、結果にはNULLが含まれない
obclient> SELECT JSON_ARRAY( JSON_ARRAY(1,2,3),100,'California', null ABSENT ON NULL) "JSON Array Example"
FROM DUAL;
+----------------------------------+
| JSON Array Example |
+----------------------------------+
| ["[1, 2, 3]", 100, "California"] |
+----------------------------------+
1 row in set
# FORMAT JSON句が有効になり、現在の式で入力された文字列をJSONタイプとして扱い、出力結果には'\"'が追加されない
obclient> SELECT JSON_ARRAY('{"a":"a-value", "b" : "b-value"}' format json RETURNING CLOB)
FROM DUAL;
+--------------------------------------------------------------------+
| JSON_ARRAY('{"A":"A-VALUE","B":"B-VALUE"}'FORMATJSONRETURNINGCLOB) |
+--------------------------------------------------------------------+
| [{"a": "a-value", "b": "b-value"}] |
+--------------------------------------------------------------------+
1 row in set
# 入力にFORMAT JSONが含まれていないため、出力文字列に'\"'が追加される
obclient> SELECT JSON_ARRAY('{"a":"a-value", "b" : "b-value"}' RETURNING CLOB) FROM DUAL;
+----------------------------------------------------------+
| JSON_ARRAY('{"A":"A-VALUE","B":"B-VALUE"}'RETURNINGCLOB) |
+----------------------------------------------------------+
| ["{\"a\":\"a-value\", \"b\" : \"b-value\"}"] |
+----------------------------------------------------------+
1 row in set
# 返される値の型をVARCHAR2型と指定する
obclient> SELECT JSON_ARRAY('{"a":"a-value", "b" : "b-value"}' format json RETURNING VARCHAR2)
FROM DUAL;
+------------------------------------------------------------------------+
| JSON_ARRAY('{"A":"A-VALUE","B":"B-VALUE"}'FORMATJSONRETURNINGVARCHAR2) |
+------------------------------------------------------------------------+
| [{"a": "a-value", "b": "b-value"}] |
+------------------------------------------------------------------------+
1 row in set