7 「JSON」ページ

ノート:

Oracle Databaseリリース19c以降のリリースで、SODA_APPロールを持つデータベース・ユーザーとしてサインインしている場合にのみ使用できます。
Database Actionsの「JSON」ページを使用して、JSONコレクションの表示と管理、例による問合せ(QBE)を使用したコレクション項目の検索、JSON検索索引の作成およびコレクションのデータ・ガイド・ダイアグラムの表示を行います。

「JSON」ページにナビゲートするには、次のいずれかを実行します。

  • 「起動パッド」ページで、「JSON」をクリックします。

  • セレクタ セレクタ・アイコン をクリックして、ナビゲーション・メニューを表示します。「開発」で、「JSON」を選択します。

7.1 JSONユーザー・インタフェースについて

JSONユーザー・インタフェースは、保存済コレクションをリストおよび検索するための左ペインと、コレクション内のドキュメントを表示および管理するための右ペインで構成されます。

JSONコレクションのリストおよび検索

次の図に、JSONページの左ペインの主な項目を示します。

ドロップダウン・リストで適切なオプションを選択して、保存済JSONコレクションまたは最近アクセスしたJSONコレクションを表示します。

検索機能では大/小文字が区別されず、一致するエントリがすべて取得され、ワイルドカード文字を使用する必要はありません。

コレクションの作成アイコンをクリックして、新しいコレクションを作成します。コレクションの作成を参照してください

コレクション名を右クリックしてコンテキスト・メニューを開きます。使用可能なオプションは次のとおりです。

  • 索引: 既存のJSON索引を表示し、検索索引、ファンクション索引または空間索引を作成できます。

  • 削除: コレクションをデータベースから完全に削除します。

コレクションの内容の表示

左ペインで特定のコレクションを選択すると、そのコレクションに属するJSONドキュメントが右ペインの下部に表示されます。右側のペインの上部には、ドキュメントをフィルタまたはソートするための問合せを実行できるJSONエディタがあります。

右隅には次の2つのアイコンがあります。

  • ツアー 「ツアー」アイコン: 使用可能な機能に関する情報を提供するJSONツアーを開始します。

  • SQLに移動 SQLページ・アイコン: 「SQL」ページに移動します。

ツールバーのアイコンは次のとおりです。

  • 新規JSONドキュメント「新規ドキュメント」アイコン: 新規ドキュメントをコレクションに追加します。JSONドキュメントの追加または編集についてを参照してください

  • ドキュメントのインポート 「ドキュメントのインポート」アイコン: ローカル・コンピュータからコレクションに既存の1つ以上のJSONファイルをインポートします。

  • リストのすべてのドキュメントを削除 「ドキュメントの削除」アイコン: 現在のQBE検索文字列に一致するコレクション内のすべてのJSONドキュメントを削除します。現在の文字列が{}の場合、コレクション内のすべてのドキュメントが削除されます。

  • 収集の詳細 「収集の詳細」アイコン: コレクションのプロパティ、JSONデータ・ガイド(作成されている場合)、関連の統計(収集されている場合)、検索索引のサイズおよびJSON索引を管理するためのページを表示できます。

  • ダイアグラム「ダイアグラム」アイコン: JSONデータ・ガイドを階層形式のダイアグラムとして表示します。コレクションのJSONデータ・ガイド・ダイアグラムの表示を参照してください

  • 新規コレクション・ビューコレクション・ビュー・アイコン: コレクション内のドキュメントにリレーショナル・ビューを作成します。

  • 問合せの実行「問合せの実行」アイコン: JSONエディタで入力したQBE条件を使用してドキュメントをフィルタします。コレクション内のドキュメントの問合せについてを参照してください

  • コレクションSQLの表示コレクションSQLの表示アイコン: JSONコレクションをSQL形式で表示します。SQLコードの実行、ダウンロードまたはクリップボードへのコピーが可能です。

各JSONドキュメントには次のアイコンがあります。

  • ドキュメントの編集 ドキュメントの編集アイコン: JSONドキュメントを編集します。JSONドキュメントの追加または編集についてを参照してください

  • ドキュメントのクローン ドキュメントのクローン・アイコン: ドキュメントのクローンを作成します。

  • ドキュメントのコピー 「ドキュメントのコピー」アイコン: ドキュメントをクリップボードにコピーします。

  • ドキュメントのエクスポート 「ドキュメントのエクスポート」アイコン: ドキュメントを.JSONファイルとしてダウンロードします。

  • ドキュメントの削除 「ドキュメントの削除」アイコン: ドキュメントを削除します。

7.2 JSONコレクションの管理

コレクションを追加、表示または削除したり、コレクション内のJSONドキュメントを参照、追加、編集および削除できます。

  • コレクションの作成: コレクションの作成を参照してください

  • コレクション内のドキュメントの追加または編集: JSONドキュメントの追加または編集についてを参照してください

  • コレクション内のドキュメントの表示: 左ペインでコレクション名を選択します。コレクション内のドキュメントが右ペインに表示されます。

  • コレクション詳細の表示: 左ペインで特定のコレクションを選択し、右ペインのツールバーで「収集の詳細」「収集の詳細」アイコンをクリックして、コレクションのプロパティ、JSONデータ・ガイド(作成されている場合)、関連の統計(収集されている場合)、検索索引のサイズおよびJSON索引を管理するためのページを表示します。

  • コレクションの削除: 左ペインでコレクション名を右クリックしてコンテキスト・メニューを開きます。「削除」を選択して、データベースからコレクションを完全に削除します。

7.2.1 コレクションの作成

この項では、コレクションの作成方法について説明します。

  1. JSONページに移動すると、次のようになります。
    • 作成されたコレクションがない場合は、JSONホーム・ページが表示されます。コレクションの作成をクリックします。

    • 使用可能な既存のコレクションがある場合は、左側のペインでコレクションの作成 「新規コレクション」アイコンをクリックします。

  2. コレクション名を入力します。大/小文字が区別されます。
  3. コレクションを作成する場合は、「作成」をクリックします。

    コレクションを取り消す場合は、「取消」をクリックするか、[Esc]キーを押します。

7.2.2 JSONドキュメントの追加または編集について

JSONエディタを使用して、JSONドキュメントを追加および編集できます。

ドキュメントを追加するには、特定のコレクションの右ペインのツールバーにある「新規JSONドキュメント」「新規JSONドキュメント」アイコンをクリックします。JSONエディタで、JSONドキュメントをコピーして貼り付けるか、「インポート」アイコンを使用してJSONドキュメントをインポートできます。

ドキュメントを編集するには、ドキュメント・カードのドキュメントの編集 ドキュメントの編集アイコンをクリックします。

次の図に、JSONエディタで開いているドキュメントを示します。

7.2.2.1 JSONドキュメントでのデータベースの違いについて

2つの異なる接続から編集されたJSONドキュメントに違いがあることがわかります。

編集したドキュメントを保存すると、編集したドキュメントとデータベース内のドキュメントのインスタンスが異なることが通知されます。違いは強調表示にもされ、迅速なレビューが可能になります。

データベース内のドキュメント・インスタンスに対する変更を上書きする場合は、「上書き」をクリックします。

図7-1 表示されるドキュメントの違い

図7-1の説明が続きます
「図7-1 表示されるドキュメントの違い」の説明

7.3 コレクション内のドキュメントの問合せについて

フィルタ仕様または例による問合せ(QBE)を使用して、コレクション内の1つ以上のドキュメントを検索できます。

QBEは、JSONで表されるパターンです。コレクションから、コンテンツが一致するJSONドキュメントを選択するために使用します。つまり、パターンで表される条件が、それらのドキュメントのみのコンテンツに対してtrueと評価される場合です。QBEおよびその使用方法の詳細は、Oracle Database Simple Oracle Document Access (SODA)の概要のSODA QBEの概要を参照してください。

特定のコレクションの場合は、JSONエディタでQBE文字列を入力します。たとえば、名前がMaryのドキュメントを選択するには、図7-2に示すように、{"name":"Mary"}と入力し、「問合せの実行」をクリックします。右下のペインに問合せの結果が表示されます。

エディタには、コマンド・パレットから使用できるコマンドの包括的なリストが用意されています。コマンド・パレットを開くには、[Ctrl]+[Shift]+[P]を押します。キーボード・ショートカット・キーのリストは、キーボード・ショートカットを参照してください。

問合せのエラーは、左余白の赤い点と、特定のテキストの下にある四角形の線で示されます。カーソルを置くと、エラーを解決するための可能な修正がポップアップで表示されます。

ヘッダーの右上のユーザー・ドロップダウン・リストの「プリファレンス」オプションを使用して、エディタ・プリファレンスを設定できます。使用可能なオプションには、テーマ(明るい、暗い、高コントラストの暗い)、フォント・サイズおよびファミリ、タブ・サイズ、ワードラップ、ルーラー、行番号などがあります。

エディタの上には次のアイコンがあります。

  • JSONデータのフォーマットjsonのフォーマット・アイコン: QBE文字列のインデントおよび改行を有効にします。

  • 句の追加: QBE文字列に$orderbyまたは$patch句の書式設定されたテンプレートを追加します。

  • クリア 「クリア」アイコン: 現行のQBE文字列をクリアします。

  • 履歴 「履歴」アイコン: 前のQBE検索文字列を取得します。

図7-2 JSONエディタのQBE文字列

図7-2の説明が続きます
「図7-2 JSONエディタのQBE文字列」の説明

QBE式は有効なJSONオブジェクトである必要があり、$queryおよび$orderbyまたは$patch句を含めることができます。QBE式は、句が定義されていない場合、$query句として扱われます。$query句で開始し、後で句の追加リストを使用して$orderbyまたは$patch句を追加します。コンテンツが変換され、$orderbyおよび$patch句のテンプレートが提供されます。テンプレートに正しい値を設定する必要があります。JSONエディタでのコンテキスト内オートコンプリート機能の使用を参照してください。

たとえば、次のような単純なフィルタ問合せがあります。

plain_query.pngの説明が続きます
図plain_query.pngの説明

「句の追加」を使用して$orderby句を追加すると、次のエントリが表示されます。

orderby_clause.pngの説明が続きます
図orderby_clause.pngの説明

$patch句を追加すると、問合せは次のように変更されます。

patch_clause.pngの説明が続きます
図patch_clause.pngの説明

7.3.1 JSONエディタでのコンテキスト内オートコンプリート機能の使用

[Ctrl]+[Space]を押すと、エディタにコンテキスト対応のオプションのリストが表示されます。このリストから、挿入ポイントでオプションを選択して自動補完できます。

json_code_completion.pngの説明が続きます
図json_code_completion.pngの説明

次のタイプの情報がリストに表示されます。

  • 比較句のフィルタ

    テンプレートは各条項に使用可能で、カーソル位置に挿入されます。たとえば、オートコンプリート・リストから$between句を選択すると、エディタに次のエントリが表示されます。

    filter_clause.pngの説明が続きます
    図filter_clause.pngの説明

    ここで、ageはプロパティ名、49および70は値です。これらは編集可能なパラメータで、強調表示されています。プロパティ名は、入力するか、オートコンプリートのヘルプを使用して編集できます。[Tab]キーを押して、次のパラメータに移動します。

  • コレクション内のJSONドキュメントのプロパティ名

    JSONドキュメントのプロパティ名には、次の2つのソースがあります。

    • データ・ガイドをサポートする検索索引が作成されている場合は、データベース・ディクショナリのJSONデータ・ガイドでプロパティ名がスキャンされます。

    • 表示または編集されたドキュメントから収集されたプロパティ名が表示されます。プロパティ名はネームスペース全体のサブセットである可能性があります。

    プロパティのタイプに基づいて、関連するテンプレートが挿入され、カーソルが挿入対象の場所に置かれます。次に、プロパティ・タイプ、そのテンプレートおよびそれぞれに対応するカーソル位置のリストを示します。

    • Object

      "ShippingInstructions.Address": {
      <cursor_here>
      }
    • Array

      "LineItems": [<cursor_here>]
    • String
      "LineItems[*].Part.Description": "<cursor_here>]"
    • Number
      "PONumber": 0
    • Boolean
      "site_admin": true

    カーソルが二重引用符("")で囲まれていて、オートコンプリートがアクティブ化されている場合、テンプレートまたは追加の二重引用符なしでプロパティ名のみが挿入されます。

7.4 JSONコレクションの索引の作成

「JSON」ページで、JSONコレクションの索引を作成できます。

関連項目:

『Oracle Database JSON開発者ガイド』の「JSONデータの索引」

「索引」ペインを開く

JSONの左ペインで、コレクションを右クリックして「索引」を選択します。

「索引」ペインに、コレクションの既存の索引がリスト表示されます。詳細を表示する索引の行を選択します。

上部のアイコンは、「JSON索引の追加」「JSON索引の編集」および「JSON索引の削除」です。

選択した索引のプロパティは、表示された索引の下にJSON形式で表示されます。「表 - JSON」オプションから「JSON」を選択して、すべての索引をJSON表現で表示します。

索引の作成

  1. + (「新規JSON索引」)アイコンをクリックします。「新規索引」ペインが表示されます。

  2. 次のフィールドを入力して索引を作成します。

    • 名前: 索引の名前を入力します。

    • タイプ: ドロップダウン・リストから索引タイプを選択します。各種オプションとして、「ファンクション」、「空間」および「検索」があります。選択した索引タイプに基づいて、対応するオプションが表示されます。

    • ファンクション・タイプの索引の場合、入力するフィールドは次のとおりです。

      • 一意: このオプションは、すべての索引付き値を一意にする場合に選択します。

      • 索引がNULL: このオプションは、Order By問合せで索引を使用する場合に選択します。

      • パスが必要: このオプションは、パスでスカラー値を(JSON null値でも)選択する必要がある場合に選択します。

      • プロパティ: 索引付けするプロパティを入力するか、*を入力してコレクションで使用可能なすべてのドキュメント・プロパティを表示します。プロパティを選択するには、各行のチェック・ボックスを選択します。

        ノート:

        配列内のプロパティは索引付けできません。
      • コンポジット索引: このオプションは、複数のプロパティを使用する場合に選択します。

      • 拡張: このオプションは、索引付けされたプロパティの記憶域プロパティを変更する場合に選択します。プロパティごとに、タイプ(varchar2、number、dateまたはtimestamp)、索引付けの最大長(文字プロパティの場合)、ソート順序を変更できます。

    • 検索索引の場合、オプションは次のとおりです。

      • データガイド(「オフ」/「オン」): コレクション用のJSONデータ・ガイドを作成する場合に、「オン」を選択します。

      • テキスト検索(「オフ」/「オン」): ドキュメント内のすべてのプロパティを索引付けして、文字列等価に基づき全文検索をサポートする場合に、「オン」を選択します(すべてのプロパティは文字列として処理されます)。

      • レンジ検索(「オフ」/「オン」): 文字列範囲検索または時間検索(等価または範囲)が必要なときに範囲検索をサポートする場合に、「オン」を選択します。

    • 空間索引は、GeoJSON地理データを索引付けするために使用されます。選択したプロパティはGeoJSONタイプである必要があります。GeoJSON地理データの使用を参照してください

      空間索引の場合、オプションは次のとおりです。

      • パスが必要: このオプションは、パスで値を(JSON null値であっても)選択する必要がある場合に選択します。

      • lax: このオプションは、ターゲット・フィールドが存在する必要がない場合、または値としてGeoJSONジオメトリ・オブジェクトがない場合に選択します。

        ノート:

        「パスが必要」「lax」を同時に有効にすることはできません。
  3. 「作成」をクリックします。索引が作成され、「索引」ペインが移入されたことを示す通知が表示されます。

7.5 JSONドキュメントのリレーショナル・ビューの作成

JSONドキュメントのリレーショナル・ビューを作成できます。
  1. 「JSON」ページで、右ペインのコレクション・ビュー・アイコン 「新規コレクション・ビュー」をクリックします。
  2. 次のフィールドを入力します。
    • ビュー名: ビューの名前を入力します。

    • 追加する列を選択します: このフィールドをクリックして使用可能なプロパティのリストを表示し、必要なプロパティを選択して一度に1つずつ追加します。あるいは、「すべて追加」を選択して、すべてのオブジェクトと配列をすべてのプロパティとともに追加します。1つ以上のプロパティを選択し、上下に移動して、結果のビューに配置します。オブジェクトおよび配列は、そのすべてのプロパティとともに移動または削除されます。

      各列の「列名」属性を編集したり、文字列タイプの場合は「長さ」属性を編集することもできます。精度とスケールは、(10,2)など、数値プロパティに設定できます。

  3. ビューを作成する前に、「問合せのテスト」をクリックしてDDL文を確認します。

    「作成」をクリックしてビューを作成するか、「定義」をクリックして前の画面に戻り、対応する属性を変更します。

    作成したビューが「SQL」ページで使用できるようになりました。

7.6 コレクションのJSONデータ・ガイド・ダイアグラムの表示

ダイアグラム・ビューには、コレクションのJSONデータ・ガイドが、エンティティ関係ダイアグラムと同様の形式を使用する階層構造として表示されます。

JSONデータ・ガイドは、JSONコンテンツを含む列を持つドキュメントのJSONスキーマを表します。

ダイアグラムで、配列は1対多の関係として表され、この配列に、1対1の関係としてオブジェクトが含まれ、可能な選択肢を囲むボックスとしてoneOf構造が含まれます。

右ペインのツールバーで「ダイアグラム」「ダイアグラム」アイコンをクリックして、特定のコレクションのJSONデータ・ガイド・ダイアグラムを表示します。

ツールバーのアイコンは、「ダイアグラムの印刷」、SVG形式で保存、「ズームイン」、「ズームアウト」、「画面に合わせる」および「実際のサイズ」です。