A Oracle DatabaseのJSONに関する制限事項

ここでは、Oracle Database内のJSONデータに対するOracleのサポートに関連する制限事項について説明します。

異なる指定がないかぎり、指定された制限事項が順守されない場合には、エラーが発生します。

  • 全般

    • JSONオブジェクトまたは配列のネスト・レベルの数: 1000(最大)

    • JSONフィールド名の長さ: 32767バイト(最大)

  • SQL/JSONファンクション

    • 戻り値の長さ: 32767バイト(最大)

    • パスの長さ: 4Kバイト(最大)

    • パス・ステップ数: 65535(最大)

  • 簡略化されたJSON構文

    • パスの長さ: 4Kバイト(最大)

    • パス・コンポーネントの長さ: 128バイト(最大)

  • JSON検索索引

    • フィールド名の長さ: 255バイト(最大)文書に255バイトよりも長いフィールド名が含まれている場合、完全に索引付けされない可能性があります。その場合、エラーがデータベース・ビューCTX_USER_INDEX_ERRORSに記録されます。

      注意:

      名前が64バイトを超えるオブジェクト・フィールドが含まれるJSONデータを索引付けする場合、Oracle Database 18cより前に作成された任意のJSON検索索引およびOracle Text索引を再構築する必要があります。詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

  • JSONデータ・ガイド

    • パスの長さ: 4000バイト(最大)4000バイトよりも長いパスは、データ・ガイドで無視されます。

    • 親ノードにある子の数: 1024(最大)子が1024を超えるノードは、データ・ガイドで無視されます。

    • フィールド値の長さ: 32767バイト32767バイトよりも長い値がJSONフィールドに含まれる場合、データ・ガイドはその長さを32767として報告します。

    • 長さが0(ゼロ)のフィールド名: 長さが0(空)のオブジェクトのフィールド名("")は、JSONデータ・ガイドではサポートされません。このような名前が含まれるJSONデータに対しては、データ・ガイドの動作は定義されていません。

  • OSON

    • すべてのフィールド名の合計サイズ: 65535バイト(最大)。

    • (各)フィールド名の長さ: 255バイト(最大)。

    • 重複フィールドの不使用: フィールド名が重複したJSONオブジェクトがOSONを使用して表されている場合、これらのフィールドの1つだけが残されます。

  • VARCHAR2として格納されていないかぎり、複数のシャード間にわたってJSONデータを問い合せることはできません。

  • PL/SQL getterメソッドJSON_OBJECT_T.get_keys()は、指定されたJSONオブジェクトに対し、最大32767のフィールド名を返します。32767を超えるフィールドを持つオブジェクトが指定されると、エラーが発生します。