18.3.2 JSONソースの管理

JSONソースを作成して、ローカルまたはリモート・データベース内のJSONコレクション表またはJSON列を含む表からデータを取得します。

18.3.2.1 JSONソースについて

Oracle APEXでのJSONソースの作成と使用について学習します。

APEXでのJSONソースは、データベース表(JSONデータを含む列があるプレーン表、またはJSONコレクション表)の所有者と名前に関する情報からなります。各JSONソースには、JSON属性を列(APEXコンポーネントで使用される)にマップするデータ・プロファイルも含まれています。

JSON列を含むプレーン表は、Oracle Database 19cおよび21cでサポートされています。JSONコレクション表は、Oracle Database 23ai以上でのみ使用できます。

ノート:

さらに学習するには、『Oracle Database JSON開発者ガイド』JSON列を含む表JSONコレクションを参照してください。

ローカル・データベースを使用して、またはREST対応SQLサービスの使用によってリモート・データベースを使用して、JSONソースを定義できます。使用する表と列を選択した後に、APEXによって、実際のデータから、またはアップロードしたJSONスキーマ・ファイルからデータ・プロファイルが特定されます。

作成後は、そのJSONソースをページ・コンポーネント(レポート、チャート、フォームなど)と共有コンポーネント(値リストや自動化など)で使用できます。開発者は、APEX_EXECパッケージを使用してプログラムでJSONソースにアクセスすることもできます。

関連項目:

『Oracle APEX APIリファレンス』APEX_EXEC

18.3.2.2 JSONソースの作成

「共有コンポーネント」からJSONソースを作成します。

JSONソースを作成するには:

  1. 「JSONソース」ページに移動します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、ページの中央にある「共有コンポーネント」をクリックします。
    4. 「データ・ソース」で、「JSONソース」を選択します。
  2. 「JSONソース」ページで、「作成」をクリックします。
  3. 「一般」で、次のように指定します。
    1. 名前 - 新しいJSONソースの名前を入力します。
    2. JSONソース・タイプ - JSONソース・タイプを選択します。オプションは次のとおりです。
      • JSONコレクション表 - CREATE JSON COLLECTION TABLE SQL構文を使用して作成されたJSONコレクション表を示します。
      • JSON列のある表 - JSONドキュメントを含む列が1つ以上ある、通常の表を示します。表を選択した後に、Oracle APEXによって、JSONドキュメントを含む列(3つまで)を求められます。
    3. 場所 - データのソース(つまり、ローカル・データベースからかREST対応SQLサービスからか)を指定します。
    4. 所有者 - 表またはビューの所有者を選択します。
    5. JSON列のある表 - JSON列のある表を選択します。
    6. 「次」をクリックします。
  4. JSON列 - 選択した表から列(3つまで)を選択します。選択した列に、有効なJSONドキュメントが含まれている必要があります。
    1. JSON列1 - このJSONソース用に使用する、JSONドキュメントを含む列を選択します。VARCHAR2CLOBBLOBまたはJSONデータ型の列を指定できます。
    2. 列1のJSONスキーマ - データ・プロファイルの生成元となるJSONスキーマ・ファイルを指定します。

      JSONスキーマを指定しなかった場合は、Oracle APEXによって、表内の既存のデータをサンプリングすることでデータ・プロファイルが生成されます。JSONスキーマの指定は、表にデータがない場合や代表的なデータがない場合に特に役立ちます。

      現在、Oracle APEXでは、1つの自己完結型JSONスキーマにある完全な定義のみがサポートされています。複数のJSONスキーマ(インポートを使用した場合や、1つのファイルにバンドルされている場合)はサポートされていません。$id属性は無視されます。また、Oracle APEXでは、データ・プロファイルに関連するJSONスキーマからのみ情報が抽出されます(属性名、データ型およびJSON階層)。

    3. 「次」をクリックします。
      データ・プロファイルが表示されます。Oracle APEXによって、新しいJSONソースについてデータ・プロファイルが算出されます。

  5. データ・プロファイル - データ・プロファイルを確認し、階層レベルごとに主キー列を確認します。
  6. 「作成」をクリックします。

18.3.2.3 JSONソースの編集と削除

JSONソースの編集ページでJSONソースを編集または削除します。

JSONソースを編集または削除するには:

  1. 「JSONソース」ページに移動します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、ページの中央にある「共有コンポーネント」をクリックします。
    4. 「データ・ソース」で、「JSONソース」を選択します。
  2. 「JSONソース」ページで、そのJSONソースの名前をクリックします。

    JSONソースの編集ページが表示されます。このページを使用して、JSONソースを編集または削除します。

  3. JSONソースを削除するには、「削除」をクリックします。プロンプトが表示されたら、リクエストを確認し、「削除」を再度クリックします。
  4. 「識別」で、次のステップを実行します。
    1. 名前 - JSONソースの名前。
    2. 静的ID - JSONソースの静的ID。静的IDは、PL/SQLコードにおいてJSONソースにプログラムでアクセスするために使用します。
    3. JSONソース・タイプ - JSONソース・タイプを選択します:
      • JSONコレクション表 - CREATE JSON COLLECTION TABLE SQL構文を使用して作成されたJSONコレクション表を示します。
      • JSON列のある表 - JSONドキュメントを含む列が1つ以上ある、通常の表を示します。
  5. 「ソース」で、次のようにします。
    1. 場所 - データのソース(ローカル・データベースからかREST対応SQLサービスからか)を指定します。
    2. JSON列のある表 - 使用するJSON列のある表を選択します。
    3. WHERE句 - データ・ソースからの行を制限するためのWHERE句を指定します。
  6. 「データ・プロファイル」で、次のようにします:
    1. 「データ・プロファイルの編集」をクリックして、データ・ソース形式の解析方法および行と列への変換方法を変更します。
    2. 「設定」で、次のようにします。
      • 名前 - データ・プロファイルの名前を入力します。
      • 書式 - データ書式を選択します。
      • 行セレクタ - 表を返すデータ・プロファイルの場合は、式を入力してデータ・ソース内の行のコレクションを選択します。

        詳細と例を確認するには、アイテム・ヘルプを参照してください。

    3. 「列」で、次のようにします - どのように1つの行を解析し複数の列に変換するかを決定します。「編集」アイコンまたは使用可能なボタンを使用して、列を追加または編集します。
    4. 再検出:
      • 「データ・プロファイルの再検出」をクリックしてデータ・プロファイルをリフレッシュします。
      • JSONスキーマ - データ・プロファイルの生成元となるJSONスキーマ・ファイルを指定します。JSONスキーマを指定しなかった場合は、Oracle APEXによって、表内の既存のデータをサンプリングすることでデータ・プロファイルが生成されます。さらに学習するには、アイテム・ヘルプを参照してください。
    5. 「詳細」で、次の項目を指定します。
      • RAWセレクタの使用 - 有効にすると、JSON解析用のSQL問合せの生成時にOracle APEXによって行セレクタと列セレクタがサニタイズされなくなります。すべてのセレクタは、指定されたとおりに使用されます。
      • プロファイル・コメント - 開発者のコメントまたはノートを入力します。
    6. 「変更の適用」をクリックして、変更を保存します。
  7. 「詳細」 - 「コメント」に、開発者のコメントまたはノートを入力します。
  8. 「変更の適用」をクリックして、変更を保存します。

18.3.2.4 JSONソースのコピーまたはサブスクライブ

現在のアプリケーションまたは別のアプリケーションからJSONソースをコピーします。別のアプリケーションからJSONソースをコピーするときに、それをサブスクライブすることもできます。

JSONソースをコピーするには:

  1. 「JSONソース」ページに移動します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、ページの中央にある「共有コンポーネント」をクリックします。
    4. 「データ・ソース」で、「JSONソース」を選択します。
  2. 「JSONソース」ページで、「コピー」をクリックします。
  3. コピー元 - JSONソースのコピー元となる場所を選択します。オプションは次のとおりです。
    • このアプリケーション
    • その他のアプリケーション
  4. 現在のアプリケーションからコピーするには:
    1. コピー元 - 「このアプリケーション」を選択します。
    2. JSONソースのコピー - コピーするJSONソースを選択します。
    3. 新しいJSONソースの名前 - 作成するJSONソースの名前を入力します。
    4. 「コピー」をクリックします。
  5. 別のアプリケーションからコピーするには:
    1. コピー元 - 「その他のアプリケーション」を選択します。
    2. アプリケーション - コピー元のアプリケーションを選択します。
    3. JSONソースのコピー - コピーするJSONソースを選択します。
    4. サブスクライブ - JSONソースをサブスクライブするには、「サブスクライブ」を有効にします。
    5. 新しいJSONソースの名前 - 作成するJSONソースの名前を入力します。
    6. 「コピー」をクリックします。

18.3.2.5 JSONソース使用状況の表示

JSONソース使用状況レポートを表示します。

JSONソース使用状況レポートを表示するには:

  1. 「JSONソース」ページに移動します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、ページの中央にある「共有コンポーネント」をクリックします。
    4. 「データ・ソース」で、「JSONソース」を選択します。
  2. 「JSONソース」ページで、「使用状況」をクリックします。
    「使用状況」ページには、現在のアプリケーション内でJSONソースが使用されている場所が表示されます。

18.3.2.6 JSONソース履歴の表示

JSONソース履歴レポートを表示します。

JSONソース履歴レポートを表示するには:

  1. 「JSONソース」ページに移動します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、ページの中央にある「共有コンポーネント」をクリックします。
    4. 「データ・ソース」で、「JSONソース」を選択します。
  2. 「JSONソース」ページで、「履歴」をクリックします。
    「履歴」ページに、現在のアプリケーション内のJSONソースに対する最近の変更が表示されます。