表ハイパーリンク・グループの作成および管理

表のハイパーリンク・グループを使用すると、1つのURLを介して複数のオブジェクトまたは複数のSQL SELECT文のデータにアクセスできます。表のハイパーリンク・グループを使用すると、様々なオブジェクトからの情報を1つのアクセス・ポイント(URL)に統合することで、データの取得が簡略化されます。

表ハイパーリンク・グループの作成

1つのURLを持つ複数の表ハイパーリンクへのアクセスを提供する表ハイパーリンク・グループを作成するステップを示します。

表ハイパーリンク・グループにアクセスすると、表ハイパーリンク・グループを作成するデータベース・ユーザーに付与された権限が使用されます。表ハイパーリンク・グループを作成するユーザーには、データへのアクセスを提供するために必要な最小限の権限が必要です。セキュリティを維持するために、Oracleでは、ADMINユーザーとしてDBMS_DATA_ACCESS.CREATE_URLを実行しないことをお薦めします。

表のハイパーリンク・グループを作成するには、次の手順を実行します。

  1. 共有する情報を含むオブジェクト(表またはビュー)およびSELECT文を特定します。
  2. DBMS_DATA_ACCESS.CREATE_URLを実行して、表ハイパーリンク・グループを生成します。

    たとえば:

    DECLARE
       status CLOB;
       BEGIN
          DBMS_DATA_ACCESS.CREATE_URL(
              sqls => '[{"name": "employee", "description": "employee description", "schema_name":"SCOTT", "schema_object_name":"employee"},
                  {"name":"TREE", "description": "tree description", "sql_statement": "select * from admin.tree_data"}]',
              expiration_minutes   => 360,
              result               => status);
           dbms_output.put_line(status);
        END;
    /

    この例では、パラメータは次のとおりです。

    • sqls: JSON配列として、表ハイパーリンク・グループのメンバーとして作成される1つ以上のスキーマ・オブジェクトまたはSQL SELECT文のメンバー詳細を指定します。

      JSON配列の形式は次のとおりです。

      属性の名前 必須 説明
      name いいえ グループ・メンバー名を指定します。名前が指定されていない場合、プロシージャはデフォルト名を作成します。
      description いいえ グループ・メンバー摘要
      sql_statement

      sql_statement またはschema_object_nameの指定は必須です

      メンバーのSQL文

      詳細は、SELECT文を使用した表ハイパーリンクの生成を参照してください。

      schema_name いいえ

      メンバーのスキーマ名。schema_object_nameで指定された表/ビューが現在のスキーマで使用できない場合にのみ、 schema_name値を指定します

      詳細は、「表またはビューの表ハイパーリンクの生成」を参照してください。

      schema_object_name

      sql_statementまたはschema_object_nameの指定は必須です

      メンバーの表/ビュー名

      詳細は、「表またはビューの表ハイパーリンクの生成」を参照してください。

      default_bind_variable いいえ バインド変数を含むsql_statementsにのみ適用可能

      詳細は、SELECT文を使用した表ハイパーリンクの生成を参照してください。

      column_lists いいえ グループ以外の表ハイパーリンクの作成に定義されたものと同じです。

      詳細は、「列で指定されたUI機能を使用した表ハイパーリンクの生成」を参照してください。

    • expiration_minutes: 表ハイパーリンク・グループが失効し、360分後に無効化されるように指定します。

    • service_name: 生成された表ハイパーリンク・グループが、特定のサービス・レベルの保証およびリソースを使用してサービスを提供することを指定します。たとえば、service_nameパラメータを使用して、オブジェクトへのアクセスがHIGHサービスにマップされるように指定します。

    • result: 操作の結果を示すJSONを提供します。

    詳細は、CREATE_URLプロシージャを参照してください。

  3. 結果を確認します。

    statusには、表ハイパーリンク・グループの作成の詳細を含む結果が含まれます。たとえば:

    {
      "status" : "SUCCESS",
      "id" : "P4LmrWC2-tGeHVlF6FRaQUIN2fW5nixkXa2t4ZGx6ubxxxyyyzzz-itojFFJFMooj",
      "preauth_url" : "https://dataaccess.adb.us-phoenix-1.oraclecloudapps.com/adb/p/QHD_Yvonle1eUCoxbN6bO...xyzabcFQEg/data",
      "member_ids" :
      [
        "zAhrHMBwknDwmmA7Nh4fR3-Wuva6io_3y-Vv-iZNNc8XplGDxyxabc7SXf5xLmFGY",
        "JKYigWp5fvAftcRsuoFeaZx2JqMn9yk71KtEleBMWZ8XcDWxyzabcPKGOTJRHVu"
      ],
      "expiration_ts" : "2025-07-18T18:12:19.311Z",
      "expiration_count" : null
    }
ノート

DBMS_DATA_ACCESS.LIST_ACTIVE_URLSおよびDBMS_DATA_ACCESS.LIST_MEMBERSを使用して、表ハイパーリンク・グループおよび表ハイパーリンク・グループのメンバーをリストできます。詳細は、表のハイパーリンク、グループおよびグループ・メンバーのリストを参照してください。

表ハイパーリンク・グループの作成に関するノート:

  • resultには、表ハイパーリンク・グループへのアクセスに使用するURLであるpreauth_url値が含まれます。詳細は、「表ハイパーリンク・グループを使用したデータへのアクセス」を参照してください。

  • プライベート・エンドポイントを含むAutonomous Databaseインスタンスで表ハイパーリンク・グループを生成すると、結果には"https://private-endpoint/adb/p/parurl-token/data"という形式の値を持つprivate_preauth_urlという名前が含まれます。

    プライベート・エンドポイントを含むAutonomous Databaseインスタンスで表ハイパーリンク・グループを生成し、プライベート・エンドポイントが「パブリック・アクセスの許可」を有効にして構成されている場合、結果にはパブリック・エンドポイントのpreauth_urlprivate_preauth_urlの両方が含まれます。

    詳細は、プライベート・エンドポイントの構成およびパブリック・アクセスを許可したプライベート・エンドポイントの使用を参照してください。

  • DBMS_DATA_ACCESS.EXTEND_URLを使用して、表ハイパーリンク・グループの存続期間を延長します。表ハイパーリンク・グループ用のidを使用してDBMS_DATA_ACCESS.EXTEND_URLを実行すると、DBMS_DATA_ACCESS.CREATE_URLを使用してグループを作成したときに追加されたメンバーの有効期限のみが延長されます(これには、DBMS_DATA_ACCESS.ADD_MEMBERで追加された表ハイパーリンクは含まれません)。DBMS_DATA_ACCESS.ADD_MEMBERで追加された表ハイパーリンクも、表ハイパーリンク・グループのコンテキストの外部で独立して存在し、それらの表ハイパーリンクでDBMS_DATA_ACCESS.EXTEND_URLを独立して実行できます。

    詳細は、EXTEND_URLプロシージャを参照してください。

  • DBMS_DATA_ACCESS.CREATE_URLのオプション・パラメータの詳細は、「表ハイパーリンクを作成するためのノート」を参照してください。

表ハイパーリンク・グループ・メンバーの追加

適切な権限を持つユーザーはいつでも、表ハイパーリンク・グループにメンバーを追加できます。

DBMS_DATA_ACCESS.ADD_MEMBERを使用して、既存の表ハイパーリンクをグループに追加します。たとえば:

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.ADD_MEMBER(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

パラメータは次のとおりです。

詳細は、ADD_MEMBERプロシージャを参照してください。

表ハイパーリンク・グループ・メンバーの削除

適切な権限を持つユーザーは、いつでも表のハイパーリンク・グループからメンバーを削除できます。

DBMS_DATA_ACCESS.REMOVE_MEMBERを使用して、表ハイパーリンク・グループからメンバーを削除します。たとえば:

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.REMOVE_MEMBER(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

パラメータは次のとおりです。

  • id: 表のハイパーリンク・グループIDを指定します。これは、表ハイパーリンク・グループの作成時に結果に表示されるid値です。詳細は、「表ハイパーリンク・グループの作成」を参照してください。

  • member_id: 表ハイパーリンク・グループから削除するメンバーIDを指定します。

  • result: 操作の結果を示すJSONを提供します。

メンバーを削除するためのノート:

詳細は、REMOVE_MEMBERプロシージャを参照してください。

表ハイパーリンク・グループの無効化

適切な権限を持つユーザーはいつでも、表ハイパーリンク・グループを無効にできます。

DBMS_DATA_ACCESS.INVALIDATE_URLを使用して、表ハイパーリンク・グループを無効化します。たとえば:

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.INVALIDATE_URL(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

パラメータは次のとおりです。

  • id: 表のハイパーリンク・グループIDを指定します。これは、表ハイパーリンク・グループの作成時に結果に表示されるid値です。詳細は、「表ハイパーリンク・グループの作成」を参照してください。

  • result: 操作の結果を示すJSONを提供します。

ノート

DBMS_DATA_ACCESS.INVALIDATE_URL idパラメータが表ハイパーリンク・グループの場合、DBMS_DATA_ACCESS.ADD_MEMBERで追加されたグループ・メンバーを除いて、このプロシージャはグループおよびすべてのグループ・メンバーを無効化します。DBMS_DATA_ACCESS.INVALIDATE_URLを実行すると、DBMS_DATA_ACCESS.ADD_MEMBERで追加されたメンバーは独立した表ハイパーリンク無効化値を保持し、DBMS_DATA_ACCESS.INVALIDATE_URLを使用してこれらの表ハイパーリンクを個別に無効化できます。

詳細は、INVALIDATE_URLプロシージャを参照してください。