17.3.1 REST対応SQLサービス参照の理解

REST対応SQLサービス参照を作成して、リモート・データベースに定義されているSQLまたはPL/SQLを実行します。

17.3.1.1 REST対応SQLサービス参照について

REST対応SQLサービス参照を使用して、リモート・データベースに定義されているSQLまたはPL/SQLを実行します。

Oracle REST Data Services (ORDS)の最小要件を満たすOracle APEXインストール環境では、RESTエンドポイントを介して任意のSQLまたはPL/SQLを実行できます。

開発者は、共有コンポーネント内の名前、エンドポイントURLおよび認証情報を定義して、REST対応SQL参照を作成します。APEXは、RESTを介してSQLまたはPL/SQL問合せをORDSに渡し、自己記述型のJSONレスポンスを返します。JSONオブジェクトには、結果セットのメタデータ、結果データおよびページ区切りの詳細が含まれます。

REST対応SQLサービスはAPEXコンポーネント内にワークスペースレベルで格納されるため、ワークスペース内のすべてのアプリケーションで使用できます。開発者は、対話モード・レポート、対話グリッド、クラシック・レポート、フォーム、マスター・ディテール・フォーム、カレンダ、JETチャート、ツリーおよびPL/SQLプロセスに対して、REST対応SQL参照を使用できます。参照は、カレンダ、JETチャート、ツリーおよびPL/SQLプロセスとともに使用することもできます。

17.3.1.2 REST対応SQLサービス参照の要件

REST対応SQLサービス参照を使用するための最小要件を確認します。

REST対応SQLサービス参照を使用するための要件は次のとおりです。

17.3.1.3 MySQLサポートについて

MySQLでは、読取り専用APEXコンポーネントのみがサポートされます。

次の表に、リモートのMySQLデータベースでREST対応SQLサービス参照を使用する場合のサポートされているAPEXコンポーネントおよびサポートされていない機能を示します。

APEXコンポーネント サポートされない機能およびコメント

クラシック・レポート

BLOB列(次を参照)。

対話モード・レポート

  • Pivot View
  • 一部の集計関数(レポートする比率、中央値、個別件数(概数)など)
  • Flashback
  • BLOB列(次を参照)
  • LOVに基づく列表示では静的LOVを使用できません

対話グリッド

  • 編集(DMLサポート)
  • 一部の集計関数(レポートする比率、中央値、個別件数(概数)など)
  • コントロール・ブレークでは主キー列を定義する必要があります
  • 複数値列でのフィルタリング
  • Flashback
  • LOVに基づく列表示では静的LOVを使用できません

ファセット検索およびスマート・フィルタ

複数値ファセット。

カレンダ

ドラッグ・アンド・ドロップ。

フォーム・リージョン

読取り専用フォームのみがサポートされます。DMLはサポートされていません。

チャート

  • ボックス・プロット・チャート
  • 一部の集計関数(レポートする比率、中央値、個別件数(概数)など)

カード

なし

列切替えレポート

なし

リフロー・レポート

なし

共有LOV

なし

マップ・リージョン

MySQLネイティブ・ジオメトリ・タイプはサポートされていません。また、マップ問合せはGeoJSONを返す必要があります。

ツリー

「兄弟順序付け基準」として選択した列は、VARCHARデータ型である必要があります(数値列または日付列以外)。

「コードを実行」ページ・プロセス

MySQLはサポートされていません。REST対応SQLを使用している場合は、リモート・サーバーのリストから選択できません。

自動化

MySQLサーバーは自動化問合せでサポートされていますが、自動化アクションおよび「コードを実行」アクション・タイプ内のターゲットとしてサポートされていません。

対話モード・レポートおよびクラシック・レポートのBLOB列

対話モード・レポートおよびクラシック・レポートのBLOB列は、一般にREST対応SQLをサポートしていないため、サポートされません。BLOB列は、カード・リージョンおよびフォーム表示でサポートされています。

17.3.1.4 REST対応SQLサービス参照とデータベース・リンクとの相違点

REST対応SQLサービス参照がデータベース・リンクとどのように異なるかについて説明します。

REST対応SQLサービス参照とデータベース・リンクは、両方とも開発者によるデータへのリモート・アクセスを可能にします。ただし、これらの機能はリモート・データにアクセスする方法が異なります。データベース・リンクとREST対応SQLサービス参照の主な違いは次のとおりです。

  • データベース・リンク
    • 開発者が同じSQL問合せでリモート表とローカル表を使用できるようにSQLレベルで機能します。
    • SQL*Net上で動作するため、インターネット上でクラウド・インスタンスに接続する場合は、問題が発生することがあります。
  • REST対応SQLサービス参照
    • ワークスペースレベルで機能します。開発者は、REST対応SQLサービスに対する問合せが含まれるAPEXコンポーネントを作成できますが、ローカル表に結合することはできません。
    • クラウド環境で、またはインターネット上で使用しやすいようにJSON over HTTP(s)と連動します。

データベース・リンクおよびREST対応SQLの両方がローカル・データベース内の表からデータをフェッチするよりはるかに非効率なネットワークを介してデータをフェッチします。環境に最適な方法を評価する際に、ページ・ビュー・パフォーマンスへの影響を評価し、適切なリフレッシュ・アルゴリズムを使用して常にローカル表でリモート・データをレプリケートすることを検討してください。

17.3.1.5 REST対応SQLサービスのエクスポートおよびインポート

REST対応SQLサービス参照を作成して、リモートOracleデータベースに定義されているSQLまたはPL/SQLを実行します。

アプリケーションをエクスポートすると、使用されるREST対応SQL参照が、エクスポート・ファイルに追加されます。アプリケーションをエクスポートして別のワークスペースにインポートする場合は、APEXによって、ターゲット・ワークスペースに同じ静的IDのREST対応SQL参照がすでに含まれているかどうかがチェックされます。REST対応SQL参照がすでに存在している場合、アプリケーションは、既存の参照を使用します。参照が存在しない場合は、ターゲット・ワークスペースに作成されます。