2.13.3 JavaScript Object Notation (JSON)の既知の不具合
次に、Oracle Database 12cリリース2 (12.2)でのJavaScript Object Notation (JSON)の既知の不具合を示します。
2.13.3.1 Oracle Bug#25186856
JavaScript Object Notation (JSON)生成関数(たとえば、JSON_OBJECT、JSON_ARRAY、JSON_OBJECTAGG
およびJSON_ARRAYAGG
)に対するLOB
入力パラメータおよびLOB
出力に、既知の問題があり、サポートされていません。
回避策:
かわりに、VARCHAR
パラメータを使用します。
2.13.3.2 Oracle Bug#24693010
JavaScript Object Notation (JSON)生成関数(JSON_OBJECT、JSON_ARRAY、JSON_OBJECTAGG
およびJSON_ARRAYAGG
)が、次を含むいくつかの場合に間違ったJSON出力値を示すことがあります。
-
データベース文字セットがUTF8文字セットではありません。
-
一部の文字列が適切にエスケープされていません。
回避策:
可能な場合は、JSON_OBJECTAGG
の使用をVARCHAR2
に、またはJSON_ARRAYAGG
の使用をVARCHAR2
の結果に制限し、CLOB
出力を回避します。シングルバイトの文字セットを使用する場合のみ、CLOB
出力を使用します。
JSON_OBJECTAGG
またはJSON_ARRAYAGG
からの間違ったJSON出力を回避するには、結果を演算子に渡す前に、カスタムPL/SQL関数を使用してVARCHAR2
列をエスケープします。エスケープ関数は二重引用符文字、バックスラッシュ文字および任意のASCII制御文字またはスペース以外の空白文字をエスケープする必要があります。
JSON_ARRAY
またはJSON_OBJECT
をAL32UTF8以外の文字セットとともに使用しないようにします。