Créer et gérer des groupes d'hyperliens de table
Les groupes d'hyperliens de table vous permettent d'accéder aux données de plusieurs objets ou de plusieurs instructions SELECT via une URL unique. L'utilisation d'un groupe d'hyperliens de table simplifie l'extraction des données en consolidant les informations de divers objets en un seul point d'accès (URL).
Créer un groupe d'hyperliens de table
Affiche les étapes de création d'un groupe d'hyperliens de table qui permet d'accéder à plusieurs hyperliens de table avec une seule URL.
Lorsque vous accédez à un groupe d'hyperliens de table, il utilise les privilèges accordés à l'utilisateur de base de données qui crée le groupe d'hyperliens de table. L'utilisateur qui crée un groupe d'hyperliens de table doit disposer des privilèges minimum requis pour fournir l'accès aux données. Pour assurer la sécurité, Oracle recommande de ne pas exécuter DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.
Pour créer un groupe d'hyperliens de table :
-
Identifiez les objets (tables ou vues) et les énoncés
SELECTqui contiennent les informations à partager. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour générer le groupe d'hyperliens de table.Exemple :
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; /Dans cet exemple, les paramètres sont les suivants :
-
sqls: Spécifie, en tant que tableau JSON, les détails de membre pour un ou plusieurs objets de schéma ou énoncés SQLSELECTà créer en tant que membres d'un groupe d'hyperliens de table.Le format du tableau JSON est le suivant :
Nom d'attribut Obligatoire Description nameNombre Indique le nom du membre du groupe. Lorsqu'aucun nom n'est indiqué, la procédure crée un nom par défaut. descriptionNombre Description du membre du groupe sql_statementFournir sql_statementouschema_object_nameest obligatoireÉnoncé SQL pour le membre Voir [Créer un hyperlien de table avec une instruction Select](autonomous-table-hyperlink-generate-url.html#GUID-19ACA32B-3F7A-44BF-AF9F-69C424E3909D) pour plus de détails.
schema_nameNombre Nom du schéma pour le membre. Indiquez une valeur
schema_nameuniquement lorsque la table/vue fournie dansschema_object_namen'est pas disponible dans le schéma courantVoir Créer un hyperlien de table pour une table ou une vue pour plus de détails.
schema_object_nameFournir sql_statementouschema_object_nameest obligatoireNom de la table/vue pour le membre Voir [Créer un hyperlien de table pour une table ou une vue](autonomous-table-hyperlink-generate-url.html#GUID-382CC1A2-CCDF-4CC4-BC67-18A66B1DB61B) pour plus de détails.
default_bind_variableNombre Applicable uniquement pour sql_statementsavec des variables de liaisonVoir [Créer un hyperlien de table avec une instruction Select](autonomous-table-hyperlink-generate-url.html#GUID-19ACA32B-3F7A-44BF-AF9F-69C424E3909D) pour plus de détails.
column_listsNombre Identique à la définition pour la création d'un hyperlien de table hors groupe Voir [Créer un hyperlien de table avec des fonctions d'interface utilisateur spécifiées sur les colonnes](autonomous-table-hyperlink-generate-url.html#GUID-B9B39F35-6F30-4FDE-9176-FBE911ACFE05) pour plus de détails.
-
expiration_minutes: Indique que le groupe d'hyperliens de table expire et est invalidé au bout de 360 minutes. -
service_name: Indique que le groupe d'hyperliens de table généré est traité avec une garantie de niveau de service et des ressources spécifiques. Par exemple, utilisez le paramètreservice_namepour spécifier que l'accès à l'objet est mappé au service HIGH. -
result: Fournit JSON qui indique le résultat de l'opération.
Pour plus d'informations, voir Procédure CREATE_URL.
-
-
Vérifiez le résultat.
statuscontient le résultat qui inclut les détails de création du groupe d'hyperliens de table. Par exemple :{ "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
Note : Vous pouvez utiliser DBMS_DATA_ACCESS.LIST_ACTIVE_URLS et DBMS_DATA_ACCESS.LIST_MEMBERS pour lister les groupes d'hyperliens de table et les membres du groupe d'hyperliens de table. Pour plus d'informations, voir Hyperliens, groupes et membres de groupe de la table de liste.
Notes pour créer un groupe d'hyperliens de table :
-
resultinclut la valeurpreauth_url: cette valeur est l'URL que vous utilisez pour accéder au groupe d'hyperliens de table. Pour plus d'informations, voir Utiliser un groupe d'hyperliens de table pour accéder aux données. -
Lorsque vous générez un groupe d'hyperliens de table sur une instance de base de données autonome avec un point d'extrémité privé, le résultat inclut un nom
private_preauth_urlavec la valeur du formulaire :"https://private-endpoint/adb/p/parurl-token/data".Lorsque vous générez un groupe d'hyperliens de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé et que le point d'extrémité privé est configuré avec l'option Autoriser l'accès public activée, le résultat inclut à la fois
preauth_urlpour le point d'extrémité public etprivate_preauth_url.Pour plus d'informations, voir Configurer des points d'extrémité privés et Utiliser un point d'extrémité privé avec accès public autorisé.
-
Utilisez
DBMS_DATA_ACCESS.EXTEND_URLpour prolonger la durée de vie d'un groupe d'hyperliens de table. Lorsque vous exécutezDBMS_DATA_ACCESS.EXTEND_URLavec une valeuridpour un groupe d'hyperliens de table, cela ne prolonge que l'expiration des membres ajoutés lorsque vous créez le groupe avecDBMS_DATA_ACCESS.CREATE_URL(cela n'inclut pas les hyperliens de table ajoutés avecDBMS_DATA_ACCESS.ADD_MEMBER). Les hyperliens de table ajoutés avecDBMS_DATA_ACCESS.ADD_MEMBERexistent également indépendamment du contexte du groupe d'hyperliens de table et vous pouvez exécuterDBMS_DATA_ACCESS.EXTEND_URLindépendamment sur ces hyperliens de table.Pour plus d'informations, voir Procédure EXTEND_URL.
-
Utilisez le paramètre
passwordpour créer un groupe d'hyperliens de table protégé par mot de passe. Si vous incluez le paramètre de mot de passe, vous pouvez également utilisermax_failed_access_attemptspour spécifier le nombre maximal d'échecs de tentatives de mot de passe séquentielles; si cette valeur est dépassée, le groupe d'hyperliens de table est invalidé.Pour plus d'informations, voir Hyperlien Créer une table protégée par mot de passe.
-
Voir Notes pour créer un hyperlien de table ou un groupe d'hyperliens de table pour plus d'informations sur les paramètres facultatifs pour
DBMS_DATA_ACCESS.CREATE_URL.
Ajouter un membre de groupe d'hyperliens de table
À tout moment, un utilisateur disposant des privilèges appropriés peut ajouter un membre à un groupe d'hyperliens de table.
Utilisez DBMS_DATA_ACCESS.ADD_MEMBER pour ajouter un hyperlien de table existant à un groupe. Par exemple :
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.ADD_MEMBER(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/Les paramètres sont les suivants :
-
id: Spécifie l'ID groupe d'hyperliens de table. Il s'agit de la valeuridaffichée dans le résultat lorsque vous créez un groupe d'hyperliens de table. Pour plus d'informations, voir Créer un groupe d'hyperliens de table. -
member_id: Spécifie un ID hyperlien de table existant à ajouter au groupe. La valeurmember_idne peut pas être un ID groupe d'hyperliens de table (is_group_urldoit êtrefalse). Pour plus d'informations, voir Lister les hyperliens de table et les groupes d'hyperliens de table. -
result: Fournit JSON qui indique le résultat de l'opération.
Pour plus d'informations, voir Procédure ADD_MEMBER.
Supprimer un membre de groupe d'hyperliens de table
À tout moment, un utilisateur disposant des privilèges appropriés peut supprimer un membre d'un groupe d'hyperliens de table.
Utilisez DBMS_DATA_ACCESS.REMOVE_MEMBER pour supprimer un membre d'un groupe d'hyperliens de table. Par exemple :
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.REMOVE_MEMBER(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/Les paramètres sont les suivants :
-
id: Spécifie l'ID groupe d'hyperliens de table. Il s'agit de la valeuridaffichée dans le résultat lorsque vous créez un groupe d'hyperliens de table. Pour plus d'informations, voir Créer un groupe d'hyperliens de table. -
member_id: Spécifie l'ID membre à supprimer du groupe d'hyperliens de table. -
result: Fournit JSON qui indique le résultat de l'opération.
Notes pour supprimer un membre :
-
La valeur
member_idne peut pas être un ID groupe d'hyperliens de table (is_group_urldoit êtrefalse). Pour plus d'informations, voir Notes relatives à la liste des hyperliens de table et des groupes d'hyperliens de table. -
Vous pouvez utiliser
DBMS_DATA_ACCESS.LIST_MEMBERSpour lister les membres d'un groupe d'hyperliens de table. Pour plus d'informations, voir Notes relatives à la liste des hyperliens de table et des groupes d'hyperliens de table. -
Si le membre supprimé est un hyperlien de table existant qui a été ajouté au groupe à l'aide de
DBMS_DATA_ACCESS.ADD_MEMBER, le membre est supprimé du groupe, mais il est possible d'accéder directement à l'hyperlien de table jusqu'à ce qu'il soit explicitement invalidé ou expire. -
Si un groupe d'hyperliens de table contient un seul membre et que ce membre est supprimé, le groupe est invalidé.
Pour plus d'informations, voir Procédure REMOVE_MEMBER.
Invalider un groupe d'hyperliens de table
À tout moment, un utilisateur disposant des privilèges appropriés peut invalider un groupe d'hyperliens de table.
Utilisez DBMS_DATA_ACCESS.INVALIDATE_URL pour invalider un groupe d'hyperliens de table. Par exemple :
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/Les paramètres sont les suivants :
-
id: Spécifie l'ID groupe d'hyperliens de table. Il s'agit de la valeuridaffichée dans le résultat lorsque vous créez un groupe d'hyperliens de table. Pour plus d'informations, voir Créer un groupe d'hyperliens de table. -
result: Fournit JSON qui indique le résultat de l'opération.
Note
Note : Lorsque le paramètre DBMS_DATA_ACCESS.INVALIDATE_URL id est un groupe d'hyperliens de table, la procédure invalide le groupe et tous les membres du groupe, à l'exception de tous les membres du groupe qui ont été ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER. Après avoir exécuté DBMS_DATA_ACCESS.INVALIDATE_URL, les membres ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER conservent leurs valeurs d'invalidation d'hyperlien de table indépendantes et vous pouvez invalider ces hyperliens de table individuellement à l'aide de DBMS_DATA_ACCESS.INVALIDATE_URL.
Pour plus d'informations, voir Procédure INVALIDATE_URL.