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

表のハイパーリンク・グループを使用すると、1つのURLを介して複数のオブジェクトまたは複数の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文

      詳細は、[Create a Table Hyperlink with a Select Statement](autonomous-table-hyperlink-generate-url.html#GUID-19ACA32B-3F7A-44BF-AF9F-69C424E3909D)を参照してください。

      schema_name いいえ

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

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

      schema_object_name sql_statementまたはschema_object_nameの指定は必須です メンバーの表/ビュー名

      詳細は、[表またはビューの表ハイパーリンクの作成](autonomous-table-hyperlink-generate-url.html#GUID-382CC1A2-CCDF-4CC4-BC67-18A66B1DB61B)を参照してください。

      default_bind_variable いいえ バインド変数を持つsql_statementsにのみ適用できます。

      詳細は、[Create a Table Hyperlink with a Select Statement](autonomous-table-hyperlink-generate-url.html#GUID-19ACA32B-3F7A-44BF-AF9F-69C424E3909D)を参照してください。

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

      詳細は、[列にUI機能が指定されている表ハイパーリンクの作成](autonomous-table-hyperlink-generate-url.html#GUID-B9B39F35-6F30-4FDE-9176-FBE911ACFE05)を参照してください。

    • 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-08-07T00:37:00.214Z"
    }

ノート

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

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

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

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

    プライベート・エンドポイントを使用してAutonomous AI 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プロシージャを参照してください。

  • パスワードで保護された表ハイパーリンク・グループを作成する場合は、passwordパラメータを使用します。パスワード・パラメータを含める場合は、max_failed_access_attemptsを使用して、失敗したパスワードの最大試行回数を指定することもできます。この値を超えると、表ハイパーリンク・グループが無効になります。

    詳細は、「パスワードで保護された表の作成」ハイパーリンクを参照してください。

  • 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;
/

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

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

  • member_id: グループに追加する既存の表のハイパーリンクIDを指定します。member_id値は表ハイパーリンク・グループIDにできません(is_group_urlfalseである必要があります)。詳細は、表ハイパーリンクおよび表ハイパーリンク・グループのリストを参照してください。

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

詳細は、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を提供します。

メンバーの削除に関するノート:

  • member_id値は表ハイパーリンク・グループIDにできません(is_group_urlfalseである必要があります)。詳細は、Notes for Listing Table Hyperlinks and Table Hyperlink Groupsを参照してください。

  • DBMS_DATA_ACCESS.LIST_MEMBERSを使用して、表ハイパーリンク・グループのメンバーをリストできます。詳細は、Notes for Listing Table Hyperlinks and Table Hyperlink Groupsを参照してください。

  • 削除されたメンバーが、DBMS_DATA_ACCESS.ADD_MEMBERを使用してグループに追加された既存の表ハイパーリンクである場合、メンバーはグループから削除されますが、表ハイパーリンクは明示的に無効化されるか期限切れになるまで直接アクセスできます。

  • 表ハイパーリンク・グループに1つのメンバーのみが含まれ、そのメンバーが削除された場合、グループは無効化されます。

詳細は、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プロシージャを参照してください。