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以外の文字セットとともに使用しないようにします。