7 「JSON」ページ
ノート:
Oracle Databaseリリース19c以降のリリースで、SODA_APPロールを持つデータベース・ユーザーとしてサインインしている場合にのみ使用できます。「JSON」ページにナビゲートするには、次のいずれかを実行します。
-
「起動パッド」ページで、「JSON」をクリックします。
-
セレクタ
をクリックして、ナビゲーション・メニューを表示します。「開発」で、「JSON」を選択します。
トピック
7.1 JSONユーザー・インタフェースについて
JSONユーザー・インタフェースは、保存済コレクションをリストおよび検索するための左ペインと、コレクション内のドキュメントを表示および管理するための右ペインで構成されます。
JSONコレクションのリストおよび検索
次の図に、JSONページの左ペインの主な項目を示します。
ドロップダウン・リストで適切なオプションを選択して、保存済JSONコレクションまたは最近アクセスしたJSONコレクションを表示します。
検索機能では大/小文字が区別されず、一致するエントリがすべて取得され、ワイルドカード文字を使用する必要はありません。
コレクションの作成アイコンをクリックして、新しいコレクションを作成します。コレクションの作成を参照してください
コレクション名を右クリックしてコンテキスト・メニューを開きます。使用可能なオプションは次のとおりです。
-
索引: 既存のJSON索引を表示し、検索索引、ファンクション索引または空間索引を作成できます。
-
削除: コレクションをデータベースから完全に削除します。
コレクションの内容の表示
左ペインで特定のコレクションを選択すると、そのコレクションに属するJSONドキュメントが右ペインの下部に表示されます。右側のペインの上部には、ドキュメントをフィルタまたはソートするための問合せを実行できるJSONエディタがあります。
右隅には次の2つのアイコンがあります。
-
ツアー
: 使用可能な機能に関する情報を提供するJSONツアーを開始します。
-
SQLに移動
: 「SQL」ページに移動します。
ツールバーのアイコンは次のとおりです。
-
新規JSONドキュメント
: 新規ドキュメントをコレクションに追加します。JSONドキュメントの追加または編集についてを参照してください
-
ドキュメントのインポート
: ローカル・コンピュータからコレクションに既存の1つ以上のJSONファイルをインポートします。
-
リストのすべてのドキュメントを削除
: 現在のQBE検索文字列に一致するコレクション内のすべてのJSONドキュメントを削除します。現在の文字列が{}の場合、コレクション内のすべてのドキュメントが削除されます。
-
収集の詳細
: コレクションのプロパティ、JSONデータ・ガイド(作成されている場合)、関連の統計(収集されている場合)、検索索引のサイズおよびJSON索引を管理するためのページを表示できます。
-
ダイアグラム
: JSONデータ・ガイドを階層形式のダイアグラムとして表示します。コレクションのJSONデータ・ガイド・ダイアグラムの表示を参照してください
-
新規コレクション・ビュー
: コレクション内のドキュメントにリレーショナル・ビューを作成します。
-
問合せの実行
: JSONエディタで入力したQBE条件を使用してドキュメントをフィルタします。コレクション内のドキュメントの問合せについてを参照してください
-
コレクションSQLの表示
: JSONコレクションをSQL形式で表示します。SQLコードの実行、ダウンロードまたはクリップボードへのコピーが可能です。
各JSONドキュメントには次のアイコンがあります。
-
ドキュメントの編集
: JSONドキュメントを編集します。JSONドキュメントの追加または編集についてを参照してください
-
ドキュメントのクローン
: ドキュメントのクローンを作成します。
-
ドキュメントのコピー
: ドキュメントをクリップボードにコピーします。
-
ドキュメントのエクスポート
: ドキュメントを.JSONファイルとしてダウンロードします。
-
ドキュメントの削除
: ドキュメントを削除します。
7.2 JSONコレクションの管理
コレクションを追加、表示または削除したり、コレクション内のJSONドキュメントを参照、追加、編集および削除できます。
-
コレクションの作成: コレクションの作成を参照してください
-
コレクション内のドキュメントの追加または編集: JSONドキュメントの追加または編集についてを参照してください
-
コレクション内のドキュメントの表示: 左ペインでコレクション名を選択します。コレクション内のドキュメントが右ペインに表示されます。
-
コレクション詳細の表示: 左ペインで特定のコレクションを選択し、右ペインのツールバーで「収集の詳細」
をクリックして、コレクションのプロパティ、JSONデータ・ガイド(作成されている場合)、関連の統計(収集されている場合)、検索索引のサイズおよびJSON索引を管理するためのページを表示します。
-
コレクションの削除: 左ペインでコレクション名を右クリックしてコンテキスト・メニューを開きます。「削除」を選択して、データベースからコレクションを完全に削除します。
7.2.2 JSONドキュメントの追加または編集について
JSONエディタを使用して、JSONドキュメントを追加および編集できます。
ドキュメントを追加するには、特定のコレクションの右ペインのツールバーにある「新規JSONドキュメント」をクリックします。JSONエディタで、JSONドキュメントをコピーして貼り付けるか、「インポート」アイコンを使用してJSONドキュメントをインポートできます。
ドキュメントを編集するには、ドキュメント・カードのドキュメントの編集 をクリックします。
次の図に、JSONエディタで開いているドキュメントを示します。
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データのフォーマット
: QBE文字列のインデントおよび改行を有効にします。
-
句の追加: QBE文字列に$orderbyまたは$patch句の書式設定されたテンプレートを追加します。
-
クリア
: 現行のQBE文字列をクリアします。
-
履歴
: 前のQBE検索文字列を取得します。
QBE式は有効なJSONオブジェクトである必要があり、$queryおよび$orderbyまたは$patch句を含めることができます。QBE式は、句が定義されていない場合、$query句として扱われます。$query句で開始し、後で句の追加リストを使用して$orderbyまたは$patch句を追加します。コンテンツが変換され、$orderbyおよび$patch句のテンプレートが提供されます。テンプレートに正しい値を設定する必要があります。JSONエディタでのコンテキスト内オートコンプリート機能の使用を参照してください。
たとえば、次のような単純なフィルタ問合せがあります。
![plain_query.pngの説明が続きます plain_query.pngの説明が続きます](img/plain_query.png)
図plain_query.pngの説明
「句の追加」を使用して$orderby句を追加すると、次のエントリが表示されます。
![orderby_clause.pngの説明が続きます orderby_clause.pngの説明が続きます](img/orderby_clause.png)
図orderby_clause.pngの説明
$patch句を追加すると、問合せは次のように変更されます。
![patch_clause.pngの説明が続きます patch_clause.pngの説明が続きます](img/patch_clause.png)
図patch_clause.pngの説明
7.3.1 JSONエディタでのコンテキスト内オートコンプリート機能の使用
[Ctrl]+[Space]を押すと、エディタにコンテキスト対応のオプションのリストが表示されます。このリストから、挿入ポイントでオプションを選択して自動補完できます。
次のタイプの情報がリストに表示されます。
-
比較句のフィルタ
テンプレートは各条項に使用可能で、カーソル位置に挿入されます。たとえば、オートコンプリート・リストから
$between
句を選択すると、エディタに次のエントリが表示されます。ここで、
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表現で表示します。
索引の作成
-
+ (「新規JSON索引」)アイコンをクリックします。「新規索引」ペインが表示されます。
-
次のフィールドを入力して索引を作成します。
-
名前: 索引の名前を入力します。
-
タイプ: ドロップダウン・リストから索引タイプを選択します。各種オプションとして、「ファンクション」、「空間」および「検索」があります。選択した索引タイプに基づいて、対応するオプションが表示されます。
-
ファンクション・タイプの索引の場合、入力するフィールドは次のとおりです。
-
一意: このオプションは、すべての索引付き値を一意にする場合に選択します。
-
索引がNULL: このオプションは、Order By問合せで索引を使用する場合に選択します。
-
パスが必要: このオプションは、パスでスカラー値を(JSON null値でも)選択する必要がある場合に選択します。
-
プロパティ: 索引付けするプロパティを入力するか、*を入力してコレクションで使用可能なすべてのドキュメント・プロパティを表示します。プロパティを選択するには、各行のチェック・ボックスを選択します。
ノート:
配列内のプロパティは索引付けできません。 -
コンポジット索引: このオプションは、複数のプロパティを使用する場合に選択します。
-
拡張: このオプションは、索引付けされたプロパティの記憶域プロパティを変更する場合に選択します。プロパティごとに、タイプ(varchar2、number、dateまたはtimestamp)、索引付けの最大長(文字プロパティの場合)、ソート順序を変更できます。
-
-
検索索引の場合、オプションは次のとおりです。
-
データガイド(「オフ」/「オン」): コレクション用のJSONデータ・ガイドを作成する場合に、「オン」を選択します。
-
テキスト検索(「オフ」/「オン」): ドキュメント内のすべてのプロパティを索引付けして、文字列等価に基づき全文検索をサポートする場合に、「オン」を選択します(すべてのプロパティは文字列として処理されます)。
-
レンジ検索(「オフ」/「オン」): 文字列範囲検索または時間検索(等価または範囲)が必要なときに範囲検索をサポートする場合に、「オン」を選択します。
-
-
空間索引は、GeoJSON地理データを索引付けするために使用されます。選択したプロパティはGeoJSONタイプである必要があります。GeoJSON地理データの使用を参照してください
空間索引の場合、オプションは次のとおりです。
-
パスが必要: このオプションは、パスで値を(JSON null値であっても)選択する必要がある場合に選択します。
-
lax: このオプションは、ターゲット・フィールドが存在する必要がない場合、または値としてGeoJSONジオメトリ・オブジェクトがない場合に選択します。
ノート:
「パスが必要」と「lax」を同時に有効にすることはできません。
-
-
-
「作成」をクリックします。索引が作成され、「索引」ペインが移入されたことを示す通知が表示されます。
7.6 コレクションのJSONデータ・ガイド・ダイアグラムの表示
ダイアグラム・ビューには、コレクションのJSONデータ・ガイドが、エンティティ関係ダイアグラムと同様の形式を使用する階層構造として表示されます。
JSONデータ・ガイドは、JSONコンテンツを含む列を持つドキュメントのJSONスキーマを表します。
ダイアグラムで、配列は1対多の関係として表され、この配列に、1対1の関係としてオブジェクトが含まれ、可能な選択肢を囲むボックスとしてoneOf構造が含まれます。
右ペインのツールバーで「ダイアグラム」をクリックして、特定のコレクションのJSONデータ・ガイド・ダイアグラムを表示します。
ツールバーのアイコンは、「ダイアグラムの印刷」、SVG形式で保存、「ズームイン」、「ズームアウト」、「画面に合わせる」および「実際のサイズ」です。