Create and Manage Table Hyperlink Groups

Table Hyperlink Groups allow you to access data from multiple objects or multiple SQL select statements through a single URL. Using a Table Hyperlink Group simplifies data retrieval by consolidating information from various objects into one access point (URL).

Create a Table Hyperlink Group

Shows you the steps to create a Table Hyperlink Group that provides access to multiple Table Hyperlinks with a single URL.

When you access a Table Hyperlink Group it uses the privileges granted to the database user who creates the Table Hyperlink Group. The user that creates a Table Hyperlink Group should have the minimum privileges required for providing access to the data. To maintain security, Oracle recommends that you do not run DBMS_DATA_ACCESS.CREATE_URL as the ADMIN user.

To create a Table Hyperlink Group:

  1. Identify the objects (tables or views) and the SELECT statements that contain the information you want to share.
  2. Run DBMS_DATA_ACCESS.CREATE_URL to generate the Table Hyperlink Group.

    For example:

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

    In this example, the parameters are:

    • sqls: specifies, as a JSON array, the member details for one or more schema objects or SQL SELECT statements to be created as members of a Table Hyperlink Group.

      The format of the JSON array is:

      Attribute Name Required Description
      name No Specifies the group member name. When no name is provided, the procedure creates a default name.
      description No Group member description
      sql_statement

      Providing either sql_statement or schema_object_name is mandatory

      SQL statement for the member

      See Generate a Table Hyperlink with a Select Statement for details.

      schema_name No

      Schema name for the member. Provide a schema_name value only when the table/view provided in schema_object_name is not available in current schema

      See Generate a Table Hyperlink for a Table or a View for details.

      schema_object_name

      Providing either sql_statement or schema_object_name is mandatory

      Table/View name for the member

      See Generate a Table Hyperlink for a Table or a View for details.

      default_bind_variable No Applicable only for sql_statements with bind variables

      See Generate a Table Hyperlink with a Select Statement for details.

      column_lists No Same as defined for the creation of a non-group Table Hyperlink

      See Generate a Table Hyperlink with UI Features Specified on Columns for details.

    • expiration_minutes: specifies that the Table Hyperlink Group expires and is invalidated after 360 minutes.

    • service_name: specifies that the generated Table Hyperlink Group is serviced with a specific service-level guarantee and resources. For example, use the service_name parameter to specify that access to the object is mapped to the HIGH service.

    • result: provides JSON that indicates the outcome of the operation.

    See CREATE_URL Procedure for more information.

  3. Check the result.

    The status contains the result that includes the create Table Hyperlink Group details. For example:

    {
      "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
    }
Note

You can use DBMS_DATA_ACCESS.LIST_ACTIVE_URLS and DBMS_DATA_ACCESS.LIST_MEMBERS to list Table Hyperlink Groups and Table Hyperlink Group members. See List Table Hyperlinks, Groups, and Group Members for more information.

Notes for creating a Table Hyperlink Group:

  • The result includes the preauth_url value is the URL you use to access the Table Hyperlink Group. See Use a Table Hyperlink Group to Access Data for more information.

  • When you generate a Table Hyperlink Group on an Autonomous Database instance with a private endpoint, the result includes a name private_preauth_url with the value of the form: "https://private-endpoint/adb/p/parurl-token/data".

    When you generate a Table Hyperlink Group on an Autonomous Database instance with a private endpoint and the private endpoint is configured with Allow public access enabled, the result includes both the preauth_url for the public endpoint and private_preauth_url.

    See Configure Private Endpoints and Use a Private Endpoint with Public Access Allowed for more information.

  • Use DBMS_DATA_ACCESS.EXTEND_URL to extend the life of a Table Hyperlink Group. When you run DBMS_DATA_ACCESS.EXTEND_URL with an id that is for a Table Hyperlink Group, this only extends the expiration of the members added when you create the group with DBMS_DATA_ACCESS.CREATE_URL (this does not include Table Hyperlinks added with DBMS_DATA_ACCESS.ADD_MEMBER). Table Hyperlinks added with DBMS_DATA_ACCESS.ADD_MEMBER also exist independently outside of the context of the Table Hyperlink Group and you can run DBMS_DATA_ACCESS.EXTEND_URL independently on those Table Hyperlinks.

    See EXTEND_URL Procedure for more information.

  • See Notes for Creating a Table Hyperlink for additional information on optional parameters for DBMS_DATA_ACCESS.CREATE_URL.

Add a Table Hyperlink Group Member

At any time a user with appropriate privileges can add a member to a Table Hyperlink Group.

Use DBMS_DATA_ACCESS.ADD_MEMBER to add an existing Table Hyperlink to a group. For example:

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

The parameters are:

  • id: specifies the Table Hyperlink Group ID. This is the id value shown in the result when you create a Table Hyperlink Group. See Create a Table Hyperlink Group for more information.

  • member_id: specifies an existing Table Hyperlink ID to add to the group. The member_id value cannot be a Table Hyperlink Group ID (is_group_url must be false). See List Table Hyperlinks and Table Hyperlink Groups for more information.
  • result: provides JSON that indicates the outcome of the operation.

See ADD_MEMBER Procedure for more information.

Remove a Table Hyperlink Group Member

At any time a user with appropriate privileges can remove a member from a Table Hyperlink Group.

Use DBMS_DATA_ACCESS.REMOVE_MEMBER to remove a member from a Table Hyperlink Group. For example:

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

The parameters are:

  • id: specifies the Table Hyperlink Group ID. This is the id value shown in the result when you create a Table Hyperlink Group. See Create a Table Hyperlink Group for more information.

  • member_id: specifies the member ID to remove from the Table Hyperlink Group.

  • result: provides JSON that indicates the outcome of the operation.

Notes for removing a member:

  • The member_id value cannot be a Table Hyperlink Group ID (is_group_url must be false). See Notes for Listing Table Hyperlinks and Table Hyperlink Groups for more information.
  • You can use DBMS_DATA_ACCESS.LIST_MEMBERS to list the members of a Table Hyperlink Group. See Notes for Listing Table Hyperlinks and Table Hyperlink Groups for more information.

  • If the removed member is an existing Table Hyperlink which was added to the group using DBMS_DATA_ACCESS.ADD_MEMBER, the member is removed from the group but the Table Hyperlink could be accessed directly until it is explicitly invalidated or expires.

  • If a Table Hyperlink Group contains only one member and that member is removed, the group is invalidated.

See REMOVE_MEMBER Procedure for more information.

Invalidate a Table Hyperlink Group

At any time a user with appropriate privileges can invalidate a Table Hyperlink Group.

Use DBMS_DATA_ACCESS.INVALIDATE_URL to invalidate a Table Hyperlink Group. For example:

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

The parameters are:

  • id: specifies the Table Hyperlink Group ID. This is the id value shown in the result when you create a Table Hyperlink Group. See Create a Table Hyperlink Group for more information.

  • result: provides JSON that indicates the outcome of the operation.

Note

When the DBMS_DATA_ACCESS.INVALIDATE_URL id parameter is a Table Hyperlink Group, the procedure invalidates the group and all the group members, with the exception of any group members that were added with DBMS_DATA_ACCESS.ADD_MEMBER. After you run DBMS_DATA_ACCESS.INVALIDATE_URL, the members that were added with DBMS_DATA_ACCESS.ADD_MEMBER maintain their independent Table Hyperlink invalidation values and you can invalidate these Table Hyperlinks individually using DBMS_DATA_ACCESS.INVALIDATE_URL.

See INVALIDATE_URL Procedure for more information.