Create and Manage Table Hyperlink Groups
Table Hyperlink Groups allow you to access data from multiple objects or multiple 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:
-
Identify the objects (tables or views) and the
SELECTstatements that contain the information you want to share. -
Run
DBMS_DATA_ACCESS.CREATE_URLto 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 SQLSELECTstatements to be created as members of a Table Hyperlink Group.The format of the JSON array is:
Attribute Name Required Description nameNo Specifies the group member name. When no name is provided, the procedure creates a default name. descriptionNo Group member description sql_statementProviding either sql_statementorschema_object_nameis mandatorySQL statement for the member See [Create a Table Hyperlink with a Select Statement](autonomous-table-hyperlink-generate-url.html#GUID-19ACA32B-3F7A-44BF-AF9F-69C424E3909D) for details.
schema_nameNo Schema name for the member. Provide a
schema_namevalue only when the table/view provided inschema_object_nameis not available in current schemaSee Create a Table Hyperlink for a Table or a View for details.
schema_object_nameProviding either sql_statementorschema_object_nameis mandatoryTable/View name for the member See [Create a Table Hyperlink for a Table or a View](autonomous-table-hyperlink-generate-url.html#GUID-382CC1A2-CCDF-4CC4-BC67-18A66B1DB61B) for details.
default_bind_variableNo Applicable only for sql_statementswith bind variablesSee [Create a Table Hyperlink with a Select Statement](autonomous-table-hyperlink-generate-url.html#GUID-19ACA32B-3F7A-44BF-AF9F-69C424E3909D) for details.
column_listsNo Same as defined for the creation of a non-group Table Hyperlink See [Create a Table Hyperlink with UI Features Specified on Columns](autonomous-table-hyperlink-generate-url.html#GUID-B9B39F35-6F30-4FDE-9176-FBE911ACFE05) 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 theservice_nameparameter 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.
-
-
Check the result.
The
statuscontains 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-08-07T00:37:00.214Z" }
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
resultincludes thepreauth_urlvalue: this 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 AI Database instance with a private endpoint, the result includes a name
private_preauth_urlwith the value of the form:"https://private-endpoint/adb/p/parurl-token/data".When you generate a Table Hyperlink Group on an Autonomous AI Database instance with a private endpoint and the private endpoint is configured with Allow public access enabled, the result includes both the
preauth_urlfor the public endpoint andprivate_preauth_url.See Configure Private Endpoints and Use a Private Endpoint with Public Access Allowed for more information.
-
Use
DBMS_DATA_ACCESS.EXTEND_URLto extend the life of a Table Hyperlink Group. When you runDBMS_DATA_ACCESS.EXTEND_URLwith anidthat is for a Table Hyperlink Group, this only extends the expiration of the members added when you create the group withDBMS_DATA_ACCESS.CREATE_URL(this does not include Table Hyperlinks added withDBMS_DATA_ACCESS.ADD_MEMBER). Table Hyperlinks added withDBMS_DATA_ACCESS.ADD_MEMBERalso exist independently outside of the context of the Table Hyperlink Group and you can runDBMS_DATA_ACCESS.EXTEND_URLindependently on those Table Hyperlinks.See EXTEND_URL Procedure for more information.
-
Use the
passwordparameter if you want to create a password protected Table Hyperlink Group. If you include the password parameter, you can also use themax_failed_access_attemptsto specify the maximum number of sequential failed password attempts; if this value is exceeded the Table Hyperlink Group is invalidated.See Create a Password Protected Table Hyperlink for more information.
-
See Notes for Creating a Table Hyperlink or a Table Hyperlink Group 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 theidvalue 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. Themember_idvalue cannot be a Table Hyperlink Group ID (is_group_urlmust befalse). 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 theidvalue 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_idvalue cannot be a Table Hyperlink Group ID (is_group_urlmust befalse). See Notes for Listing Table Hyperlinks and Table Hyperlink Groups for more information. -
You can use
DBMS_DATA_ACCESS.LIST_MEMBERSto 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 theidvalue 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.