JSON_SERIALIZE

構文

目的

json_serializeファンクションは、任意のSQLデータ型(VARCHAR2CLOBBLOB)のJSONデータを入力に取り、そのテキスト表記を返します。通常は、問合せの結果を変換するために使用します。

json_serializeを使用すると、バイナリのJSONデータをテキスト形式(VARCHAR2またはCLOB)に変換することや、出力整形やASCII Unicode以外の文字のエスケープによってテキストのJSONデータを変換することができます。

expr

exprは入力式です。VARCHAR2CLOBまたはBLOBのいずれかの型になります。

JSON_returning_clause

JSON_returning_clauseを使用して、戻り型を指定します。戻り型は、VARCHAR2CLOBまたはBLOBのいずれかにできます。

デフォルトの戻り型はVARCHAR2(4000)です。

戻り型がRAWまたはBLOBの場合は、 UTF8エンコードしたJSONテキストが含まれます。

PRETTY

結果を読みやすい形式にする場合は、PRETTYを指定します。

ASCII

JSONエスケープ・シーケンスを使用して非ASCII文字を出力する場合は、ASCIIを指定します。

TRUNCATE

結果ドキュメントのテキスト出力を、指定した戻り型のバッファに収める場合はTRUNCATEを指定します。

JSON_on_error_clause

JSON_on_error_clauseを指定すると、処理エラーの処理を制御できます。

ERROR ON ERRORがデフォルトです。

EMPTY ON ERRORはサポートされません。

JSON_on_error_clauseを指定してTRUNCATEを使用すると、エラーが発生することなく、戻り型に対して大きすぎる値が、バッファに収まるように切り捨てられます。

SELECT JSON_SERIALIZE ('{a:[1,2,3,4]}' RETURNING VARCHAR2(3) TRUNCATE ERROR ON ERROR) from dual
–-------
{"a