Créer et gérer des groupes de liens hypertexte de table

Les groupes de liens hypertexte de table vous permettent d'accéder aux données de plusieurs objets ou instructions SELECT via une seule URL. L'utilisation d'un groupe de liens hypertexte de table simplifie l'extraction des données en consolidant les informations de divers objets en un point d'accès (URL).

Créer un groupe de liens hypertexte de table

Affiche les étapes de création d'un groupe de liens hypertexte de table qui permet d'accéder à plusieurs liens hypertexte de table avec une seule URL.

Lorsque vous accédez à un groupe de liens hypertexte de table, il utilise les privilèges accordés à l'utilisateur de base de données qui crée le groupe de liens hypertexte de table. L'utilisateur qui crée un groupe de liens hypertexte de table doit disposer des privilèges minimum requis pour fournir l'accès aux données. Pour maintenir 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 de liens hypertexte de table :

  1. Identifiez les objets (tables ou vues) et les instructions SELECT qui contiennent les informations à partager.
  2. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le groupe de liens hypertexte de table.

    Par 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 : indique, en tant que tableau JSON, les détails de membre pour un ou plusieurs objets de schéma ou instructions SQL SELECT à créer en tant que membres d'un groupe de liens hypertexte de table.

      Le format du tableau JSON est :

      Nom d'attribut Requis Description
      name Non Spécifie le nom du membre du groupe. Lorsqu'aucun nom n'est fourni, la procédure crée un nom par défaut.
      description Non Description du membre du groupe
      sql_statement

      L'option sql_statement ou schema_object_name est obligatoire

      Instruction SQL pour le membre

      Pour plus d'informations, reportez-vous à Générer un lien hypertexte de table avec une instruction Select.

      schema_name Non

      Nom de 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 en cours

      Pour plus de détails, reportez-vous à Génération d'un lien hypertexte de table pour une table ou une vue.

      schema_object_name

      L'option sql_statement ou schema_object_name est obligatoire

      Nom de table/vue du membre

      Pour plus de détails, reportez-vous à Génération d'un lien hypertexte de table pour une table ou une vue.

      default_bind_variable Non Applicable uniquement pour sql_statements avec des variables attachées

      Pour plus d'informations, reportez-vous à Générer un lien hypertexte de table avec une instruction Select.

      column_lists Non Identique à ce qui a été défini pour la création d'un lien hypertexte de table non groupe

      Pour plus d'informations, reportez-vous à Génération d'un lien hypertexte de table avec les fonctionnalités d'interface utilisateur spécifiées sur les colonnes.

    • expiration_minutes : indique que le groupe de liens hypertexte de table expire et est invalidé après 360 minutes.

    • service_name : indique que le groupe de liens hypertexte de table généré est traité avec une garantie et des ressources de niveau de service spécifiques. Par exemple, utilisez le paramètre service_name pour indiquer que l'accès à l'objet est mis en correspondance avec le service HIGH.

    • result : fournit un format JSON qui indique le résultat de l'opération.

    Pour plus d'informations, reportez-vous à Procédure CREATE_URL.

  3. Vérifiez le résultat.

    status contient le résultat qui inclut les détails de création de groupe de liens hypertexte 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-07-18T18:12:19.311Z",
      "expiration_count" : null
    }
Remarque

Vous pouvez utiliser DBMS_DATA_ACCESS.LIST_ACTIVE_URLS et DBMS_DATA_ACCESS.LIST_MEMBERS pour répertorier les groupes de liens hypertexte de table et les membres de groupe de liens hypertexte de table. Pour plus d'informations, reportez-vous à Liste des liens hypertexte de table, des groupes et des membres de groupe.

Remarques concernant la création d'un groupe de liens hypertexte de table :

  • result inclut la valeur preauth_url qui est l'URL que vous utilisez pour accéder au groupe de liens hypertexte de table. Pour plus d'informations, reportez-vous à Utilisation d'un groupe de liens hypertexte de table pour accéder aux données.

  • Lorsque vous générez un groupe de liens hypertexte de table sur une instance Autonomous Database avec une adresse privée, le résultat inclut un nom private_preauth_url avec la valeur du format : "https://private-endpoint/adb/p/parurl-token/data".

    Lorsque vous générez un groupe de liens hypertexte de table sur une instance Autonomous Database avec une adresse privée et que l'adresse privée est configurée avec l'option Autoriser l'accès public activée, le résultat inclut à la fois l'adresse preauth_url pour l'adresse publique et private_preauth_url.

    Pour plus d'informations, reportez-vous à Configuration des adresses privées et à Utilisation d'une adresse privée avec accès public autorisé.

  • Utilisez DBMS_DATA_ACCESS.EXTEND_URL pour prolonger la durée de vie d'un groupe de liens hypertexte de table. Lorsque vous exécutez DBMS_DATA_ACCESS.EXTEND_URL avec un élément id destiné à un groupe de liens hypertexte de table, cela prolonge uniquement l'expiration des membres ajoutés lorsque vous créez le groupe avec DBMS_DATA_ACCESS.CREATE_URL (cela n'inclut pas les liens hypertexte de table ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER). Les liens hypertexte de table ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER existent également indépendamment en dehors du contexte du groupe de liens hypertexte de table et vous pouvez exécuter DBMS_DATA_ACCESS.EXTEND_URL indépendamment sur ces liens hypertexte de table.

    Pour plus d'informations, reportez-vous à Procédure EXTEND_URL.

  • Pour plus d'informations sur les paramètres facultatifs de DBMS_DATA_ACCESS.CREATE_URL, reportez-vous à Notes pour la création d'un lien hypertexte de table.

Ajouter un membre de groupe de liens hypertexte de table

A tout moment, un utilisateur disposant des privilèges appropriés peut ajouter un membre à un groupe de liens hypertexte de table.

Utilisez DBMS_DATA_ACCESS.ADD_MEMBER pour ajouter un lien hypertexte 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 : indique l'ID de groupe de liens hypertexte de table. Il s'agit de la valeur id affichée dans le résultat lorsque vous créez un groupe de liens hypertexte de table. Pour plus d'informations, reportez-vous à Création d'un groupe de liens hypertexte de table.

  • member_id : indique un ID de lien hypertexte de table existant à ajouter au groupe. La valeur member_id ne peut pas être un ID de groupe de liens hypertexte de table (is_group_url doit être false). Pour plus d'informations, reportez-vous à Liste des liens hypertexte de table et groupes de liens hypertexte de table.
  • result : fournit un format JSON qui indique le résultat de l'opération.

Pour plus d'informations, reportez-vous à Procédure ADD_MEMBER.

Supprimer un membre de groupe de liens hypertexte de table

A tout moment, un utilisateur disposant des privilèges appropriés peut supprimer un membre d'un groupe de liens hypertexte de table.

Utilisez DBMS_DATA_ACCESS.REMOVE_MEMBER pour enlever un membre d'un groupe de liens hypertexte 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 : indique l'ID de groupe de liens hypertexte de table. Il s'agit de la valeur id affichée dans le résultat lorsque vous créez un groupe de liens hypertexte de table. Pour plus d'informations, reportez-vous à Création d'un groupe de liens hypertexte de table.

  • member_id : indique l'ID de membre à enlever du groupe de liens hypertexte de table.

  • result : fournit un format JSON qui indique le résultat de l'opération.

Remarques concernant la suppression d'un membre :

Pour plus d'informations, reportez-vous à Procédure REMOVE_MEMBER.

Invalider un groupe de liens hypertexte de table

A tout moment, un utilisateur disposant des privilèges appropriés peut invalider un groupe de liens hypertexte de table.

Utilisez DBMS_DATA_ACCESS.INVALIDATE_URL pour invalider un groupe de liens hypertexte 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 : indique l'ID de groupe de liens hypertexte de table. Il s'agit de la valeur id affichée dans le résultat lorsque vous créez un groupe de liens hypertexte de table. Pour plus d'informations, reportez-vous à Création d'un groupe de liens hypertexte de table.

  • result : fournit un format JSON qui indique le résultat de l'opération.

Remarque

Lorsque le paramètre DBMS_DATA_ACCESS.INVALIDATE_URL id est un groupe de liens hypertexte de table, la procédure invalide le groupe et tous les membres du groupe, à l'exception de tous les membres de groupe 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 de lien hypertexte de table indépendantes et vous pouvez invalider ces liens hypertexte de table individuellement à l'aide de DBMS_DATA_ACCESS.INVALIDATE_URL.

Pour plus d'informations, reportez-vous à Procédure INVALIDATE_URL.