Crear y gestionar grupos de hiperenlaces de tablas

Los grupos de hiperenlaces de tablas permiten acceder a datos de varios objetos o varias sentencias SQL select a través de una única URL. El uso de un grupo de hipervínculos de tabla simplifica la recuperación de datos mediante la consolidación de información de varios objetos en un punto de acceso (URL).

Creación de un grupo de hiperenlaces de tablas

Muestra los pasos para crear un grupo de hipervínculos de tabla que proporciona acceso a varios hipervínculos de tabla con una única URL.

Al acceder a un grupo de hiperenlaces de tablas, utiliza los privilegios otorgados al usuario de la base de datos que crea el grupo de hiperenlaces de tablas. El usuario que crea un grupo de hipervínculos de tabla debe tener los privilegios mínimos necesarios para proporcionar acceso a los datos. Para mantener la seguridad, Oracle recomienda que no ejecute DBMS_DATA_ACCESS.CREATE_URL como usuario ADMIN.

Para crear un grupo de hipervínculos de tabla:

  1. Identifique los objetos (tablas o vistas) y las sentencias SELECT que contienen la información que desea compartir.
  2. Ejecute DBMS_DATA_ACCESS.CREATE_URL para generar el grupo de hipervínculos de tabla.

    Por ejemplo:

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

    En este ejemplo, los parámetros son:

    • sqls: especifica, como matriz de JSON, los detalles de miembro de uno o más objetos de esquema o sentencias SQL SELECT que se van a crear como miembros de un grupo de hiperenlaces de tablas.

      El formato de la matriz de JSON es:

      Nombre de atributo Necesario Descripción
      name No Especifica el nombre del miembro del grupo. Cuando no se proporciona ningún nombre, el procedimiento crea un nombre por defecto.
      description No Descripción de miembro de grupo
      sql_statement

      Proporcionar sql_statement o schema_object_name es obligatorio

      Sentencia SQL para el miembro

      Consulte Generación de un hiperenlace de tabla con una sentencia Select para obtener más información.

      schema_name No

      Nombre de esquema para el miembro. Proporcione un valor schema_name solo cuando la tabla/vista proporcionada en schema_object_name no esté disponible en el esquema actual

      Consulte Generación de un hiperenlace de tabla para una tabla o una vista para obtener más información.

      schema_object_name

      Proporcionar sql_statement o schema_object_name es obligatorio

      Nombre de tabla/vista del miembro

      Consulte Generación de un hiperenlace de tabla para una tabla o una vista para obtener más información.

      default_bind_variable No Aplicable solo para sql_statements con variables de enlace

      Consulte Generación de un hiperenlace de tabla con una sentencia Select para obtener más información.

      column_lists No Igual que se ha definido para la creación de un hiperenlace de tabla que no sea de grupo

      Consulte Generación de un hiperenlace de tabla con funciones de interfaz de usuario especificadas en columnas para obtener más información.

    • expiration_minutes: especifica que el grupo de hiperenlaces de tablas caduca y se invalida después de 360 minutos.

    • service_name: especifica que el grupo de hiperenlaces de tablas generado recibe servicio con una garantía y recursos de nivel de servicio específicos. Por ejemplo, utilice el parámetro service_name para especificar que el acceso al objeto se asigne al servicio HIGH.

    • result: proporciona JSON que indica el resultado de la operación.

    Consulte CREATE_URL Procedure para obtener más información.

  3. Compruebe el resultado.

    status contiene el resultado que incluye los detalles de creación de grupo de hipervínculos de tabla. Por ejemplo:

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

Puede utilizar DBMS_DATA_ACCESS.LIST_ACTIVE_URLS y DBMS_DATA_ACCESS.LIST_MEMBERS para mostrar los miembros de grupos de hipervínculos de tabla y de grupo de hipervínculos de tabla. Consulte Lista de hipervínculos de tabla, grupos y miembros de grupo para obtener más información.

Notas para crear un grupo de hipervínculos de tabla:

  • result incluye el valor preauth_url, que es la URL que se utiliza para acceder al grupo de hiperenlaces de tablas. Consulte Uso de un grupo de hiperenlaces de tablas para acceder a los datos para obtener más información.

  • Al generar un grupo de hiperenlaces de tablas en una instancia de Autonomous Database con un punto final privado, el resultado incluye un nombre private_preauth_url con el valor del formulario: "https://private-endpoint/adb/p/parurl-token/data".

    Al generar un grupo de hiperenlaces de tabla en una instancia de Autonomous Database con un punto final privado y el punto final privado está configurado con Permitir acceso público activado, el resultado incluye tanto preauth_url para el punto final público como private_preauth_url.

    Consulte Configuración de puntos finales privados y Uso de un punto final privado con acceso público permitido para obtener más información.

  • Utilice DBMS_DATA_ACCESS.EXTEND_URL para ampliar la vida útil de un grupo de hiperenlaces de tablas. Al ejecutar DBMS_DATA_ACCESS.EXTEND_URL con un valor id para un grupo de hiperenlaces de tablas, esto solo amplía la caducidad de los miembros agregados al crear el grupo con DBMS_DATA_ACCESS.CREATE_URL (no incluye los hiperenlaces de tablas agregados con DBMS_DATA_ACCESS.ADD_MEMBER). Los hiperenlaces de tabla agregados con DBMS_DATA_ACCESS.ADD_MEMBER también existen de forma independiente fuera del contexto del grupo de hiperenlaces de tabla y puede ejecutar DBMS_DATA_ACCESS.EXTEND_URL de forma independiente en esos hiperenlaces de tabla.

    Consulte EXTEND_URL Procedure para obtener más información.

  • Consulte Notas para crear un hiperenlace de tabla para obtener información adicional sobre los parámetros opcionales para DBMS_DATA_ACCESS.CREATE_URL.

Agregar un miembro de grupo de hipervínculos de tabla

En cualquier momento, un usuario con los privilegios adecuados puede agregar un miembro a un grupo de hipervínculos de tabla.

Utilice DBMS_DATA_ACCESS.ADD_MEMBER para agregar un hiperenlace de tabla existente a un grupo. Por ejemplo:

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

Los parámetros son:

  • id: especifica el ID de grupo de hiperenlaces de tabla. Este es el valor id que se muestra en el resultado al crear un grupo de hipervínculos de tabla. Consulte Creación de un grupo de hiperenlaces de tablas para obtener más información.

  • member_id: especifica un ID de hiperenlace de tabla existente para agregarlo al grupo. El valor member_id no puede ser un ID de grupo de hipervínculos de tabla (is_group_url debe ser false). Consulte Lista de hiperenlaces de tablas y grupos de hiperenlaces de tablas para obtener más información.
  • result: proporciona JSON que indica el resultado de la operación.

Consulte ADD_MEMBER Procedure para obtener más información.

Eliminar un miembro de grupo de hipervínculos de tabla

En cualquier momento, un usuario con los privilegios adecuados puede eliminar un miembro de un grupo de hipervínculos de tabla.

Utilice DBMS_DATA_ACCESS.REMOVE_MEMBER para eliminar un miembro de un grupo de hipervínculos de tabla. Por ejemplo:

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

Los parámetros son:

  • id: especifica el ID de grupo de hiperenlaces de tabla. Este es el valor id que se muestra en el resultado al crear un grupo de hipervínculos de tabla. Consulte Creación de un grupo de hiperenlaces de tablas para obtener más información.

  • member_id: especifica el ID de miembro que se va a eliminar del grupo de hiperenlaces de tablas.

  • result: proporciona JSON que indica el resultado de la operación.

Notas para eliminar un miembro:

  • El valor member_id no puede ser un ID de grupo de hipervínculos de tabla (is_group_url debe ser false). Consulte Notas para mostrar hipervínculos de tabla y grupos de hipervínculos de tabla para obtener más información.
  • Puede utilizar DBMS_DATA_ACCESS.LIST_MEMBERS para mostrar los miembros de un grupo de hipervínculos de tabla. Consulte Notas para mostrar hipervínculos de tabla y grupos de hipervínculos de tabla para obtener más información.

  • Si el miembro eliminado es un hiperenlace de tabla existente que se ha agregado al grupo mediante DBMS_DATA_ACCESS.ADD_MEMBER, el miembro se elimina del grupo, pero se puede acceder directamente al hiperenlace de tabla hasta que se invalide o caduque explícitamente.

  • Si un grupo de hipervínculos de tabla contiene solo un miembro y ese miembro se elimina, el grupo se invalidará.

Consulte REMOVE_MEMBER Procedure para obtener más información.

Invalidación de un Grupo de Hipervínculos de Tabla

En cualquier momento, un usuario con los privilegios adecuados puede invalidar un grupo de hipervínculos de tabla.

Utilice DBMS_DATA_ACCESS.INVALIDATE_URL para invalidar un grupo de hipervínculos de tabla. Por ejemplo:

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

Los parámetros son:

  • id: especifica el ID de grupo de hiperenlaces de tabla. Este es el valor id que se muestra en el resultado al crear un grupo de hipervínculos de tabla. Consulte Creación de un grupo de hiperenlaces de tablas para obtener más información.

  • result: proporciona JSON que indica el resultado de la operación.

Nota

Cuando el parámetro DBMS_DATA_ACCESS.INVALIDATE_URL id es un grupo de hipervínculos de tabla, el procedimiento invalida el grupo y todos los miembros del grupo, con la excepción de cualquier miembro del grupo que se haya agregado con DBMS_DATA_ACCESS.ADD_MEMBER. Después de ejecutar DBMS_DATA_ACCESS.INVALIDATE_URL, los miembros que se agregaron con DBMS_DATA_ACCESS.ADD_MEMBER mantienen sus valores de invalidación de hiperenlace de tabla independientes y puede invalidar estos hiperenlaces de tabla individualmente mediante DBMS_DATA_ACCESS.INVALIDATE_URL.

Consulte INVALIDATE_URL Procedure para obtener más información.