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 :

  1. Identifiez les objets (tables ou vues) et les énoncés SELECT qui contiennent les informations à partager.
  2. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour 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 SQL SELECT à 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
      name Nombre Indique le nom du membre du groupe. Lorsqu'aucun nom n'est indiqué, la procédure crée un nom par défaut.
      description Nombre Description du membre du groupe
      sql_statement

      Fournir sql_statement ou schema_object_name est obligatoire

      Énoncé SQL pour le membre

      Voir Créer un hyperlien de table avec un énoncé Select pour plus de détails.

      schema_name Nombre

      Nom du schéma pour le membre. Indiquez une valeur schema_name uniquement lorsque la table/vue fournie dans schema_object_name n'est pas disponible dans le schéma courant

      Voir Créer un hyperlien de table pour une table ou une vue pour plus de détails.

      schema_object_name

      Fournir sql_statement ou schema_object_name est obligatoire

      Nom de la table/vue pour le membre

      Voir Créer un hyperlien de table pour une table ou une vue pour plus de détails.

      default_bind_variable Nombre Applicable uniquement pour sql_statements avec des variables de liaison

      Voir Créer un hyperlien de table avec un énoncé Select pour plus de détails.

      column_lists Nombre Identique à la définition pour la création d'un hyperlien de table hors groupe

      Voir Créer un hyperlien de table avec les fonctions d'interface utilisateur spécifiées sur les colonnes 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ètre service_name pour 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édureCREATE_URL.

  3. Vérifiez le résultat.

    status contient le résultat qui inclut les détails de création du groupe d'hyperliens de table. 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

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 :

  • result inclut la valeur preauth_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_url avec 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_url pour le point d'extrémité public et private_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_URL pour prolonger la durée de vie d'un groupe d'hyperliens de table. Lorsque vous exécutez DBMS_DATA_ACCESS.EXTEND_URL avec une valeur id pour un groupe d'hyperliens de table, cela ne prolonge que l'expiration des membres ajoutés lorsque vous créez le groupe avec DBMS_DATA_ACCESS.CREATE_URL (cela n'inclut pas les hyperliens de table ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER). Les hyperliens de table ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER existent également indépendamment du contexte du groupe d'hyperliens de table et vous pouvez exécuter DBMS_DATA_ACCESS.EXTEND_URL indépendamment sur ces hyperliens de table.

    Pour plus d'informations, voir ProcédureEXTEND_URL.

  • Utilisez le paramètre password pour 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 utiliser max_failed_access_attempts pour 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. 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 valeur id affiché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 valeur member_id ne peut pas être un ID groupe d'hyperliens de table (is_group_url doit être false). 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édureADD_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. 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 valeur id affiché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 :

Pour plus d'informations, voir ProcédureREMOVE_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. 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 valeur id affiché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

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édureINVALIDATE_URL.