Criar e Gerenciar Grupos de Hiperlink de Tabela

Os Grupos de Hiperlinks de Tabela permitem que você acesse dados de vários objetos ou várias instruções SELECT por meio de um único URL. O uso de um Grupo de Hiperlinks de Tabela simplifica a recuperação de dados consolidando informações de vários objetos em um único ponto de acesso (URL).

Criar um Grupo de Hiperlinks de Tabela

Mostra as etapas para criar um Grupo de Hiperlinks de Tabela que fornece acesso a vários Hiperlinks de Tabela com um único URL.

Quando você acessa um Grupo de Hiperlinks de Tabela, ele usa os privilégios concedidos ao usuário do banco de dados que cria o Grupo de Hiperlinks de Tabela. O usuário que cria um Grupo de Hiperlinks de Tabela deve ter os privilégios mínimos necessários para fornecer acesso aos dados. Para manter a segurança, a Oracle recomenda que você não execute DBMS_DATA_ACCESS.CREATE_URL como usuário ADMIN.

Para criar um Grupo de Hiperlinks de Tabela:

  1. Identifique os objetos (tabelas ou views) e as instruções SELECT que contêm as informações que você deseja compartilhar.
  2. Execute DBMS_DATA_ACCESS.CREATE_URL para gerar o Grupo de Hiperlinks da Tabela.

    Por exemplo:

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

    Neste exemplo, os parâmetros são:

    • sqls: especifica, como um array JSON, os detalhes do membro para um ou mais objetos de esquema ou instruções SQL SELECT a serem criados como membros de um Grupo de Hiperlinks da Tabela.

      O formato do array JSON é:

      Nome do Atributo Obrigatório Descrição
      name Não Especifica o nome do membro do grupo. Quando nenhum nome é fornecido, o procedimento cria um nome padrão.
      description Não Descrição do membro do grupo
      sql_statement

      O fornecimento de sql_statement ou schema_object_name é obrigatório

      instrução SQL para o membro

      Consulte Gerar um Hiperlink de Tabela com uma Instrução Select para obter detalhes.

      schema_name Não

      Nome de esquema para o membro. Forneça um valor schema_name somente quando a tabela/view fornecida no schema_object_name não estiver disponível no esquema atual

      Consulte Gerar um Hiperlink de Tabela para uma Tabela ou uma View para obter detalhes.

      schema_object_name

      O fornecimento de sql_statement ou schema_object_name é obrigatório

      Nome da Tabela/View do membro

      Consulte Gerar um Hiperlink de Tabela para uma Tabela ou uma View para obter detalhes.

      default_bind_variable Não Aplicável somente a sql_statements com variáveis de bind

      Consulte Gerar um Hiperlink de Tabela com uma Instrução Select para obter detalhes.

      column_lists Não Igual ao definido para a criação de um Hiperlink de Tabela que não seja de grupo

      Consulte Gerar um Hiperlink de Tabela com Recursos de IU Especificados em Colunas para obter detalhes.

    • expiration_minutes: especifica que o Grupo de Hiperlinks da Tabela expira e é invalidado após 360 minutos.

    • service_name: especifica que o Grupo de Hiperlinks de Tabela gerado é atendido com uma garantia e recursos específicos de nível de serviço. Por exemplo, use o parâmetro service_name para especificar que o acesso ao objeto seja mapeado para o serviço HIGH.

    • result: fornece JSON que indica o resultado da operação.

    Consulte CREATE_URL Procedures para obter mais informações.

  3. Verifique o resultado.

    O status contém o resultado que inclui os detalhes de criação do Grupo de Hiperlinks da Tabela. Por exemplo:

    {
      "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
    }
Observação

Você pode usar DBMS_DATA_ACCESS.LIST_ACTIVE_URLS e DBMS_DATA_ACCESS.LIST_MEMBERS para listar os membros Grupos de Hiperlink de Tabela e Grupo de Hiperlink de Tabela. Consulte Listar Hiperlinks da Tabela, Grupos e Membros do Grupo para obter mais informações.

Observações para criar um Grupo de Hiperlinks de Tabela:

  • O result inclui o valor preauth_url é o URL que você usa para acessar o Grupo de Hiperlinks da Tabela. Consulte Usar um Grupo de Hiperlinks de Tabela para Acessar Dados para obter mais informações.

  • Quando você gera um Grupo de Hiperlinks de Tabela em uma instância do Autonomous Database com um ponto final privado, o resultado inclui um nome private_preauth_url com o valor do formato: "https://private-endpoint/adb/p/parurl-token/data".

    Quando você gera um Grupo de Hiperlinks de Tabela em uma instância do Autonomous Database com um ponto final privado e o ponto final privado é configurado com a opção Permitir acesso público ativada, o resultado inclui o preauth_url para o ponto final público e o private_preauth_url.

    Consulte Configurar Pontos Finais Privados e Usar um Ponto Final Privado com Acesso Público Permitido para obter mais informações.

  • Use DBMS_DATA_ACCESS.EXTEND_URL para estender a vida útil de um Grupo de Hiperlinks de Tabela. Quando você executa DBMS_DATA_ACCESS.EXTEND_URL com um id para um Grupo de Hiperlinks de Tabela, isso só estende a expiração dos membros adicionados quando você cria o grupo com DBMS_DATA_ACCESS.CREATE_URL (isso não inclui Hiperlinks de Tabela adicionados com DBMS_DATA_ACCESS.ADD_MEMBER). Os Hiperlinks de Tabela adicionados com DBMS_DATA_ACCESS.ADD_MEMBER também existem independentemente fora do contexto do Grupo de Hiperlinks de Tabela e você pode executar DBMS_DATA_ACCESS.EXTEND_URL independentemente nesses Hiperlinks de Tabela.

    Consulte EXTEND_URL Procedures para obter mais informações.

  • Consulte Observações para Criar um Hiperlink de Tabela para obter informações adicionais sobre parâmetros opcionais para DBMS_DATA_ACCESS.CREATE_URL.

Adicionar um Membro do Grupo de Hiperlinks da Tabela

A qualquer momento, um usuário com privilégios apropriados pode adicionar um membro a um Grupo de Hiperlink de Tabela.

Use DBMS_DATA_ACCESS.ADD_MEMBER para adicionar um Hiperlink de Tabela existente a um grupo. Por exemplo:

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

Os parâmetros são:

  • id: especifica o ID do Grupo de Hiperlinks da Tabela. Este é o valor id mostrado no resultado quando você cria um Grupo de Hiperlinks de Tabela. Consulte Criar um Grupo de Hiperlinks de Tabela para obter mais informações.

  • member_id: especifica um ID de Hiperlink de Tabela existente a ser adicionado ao grupo. O valor member_id não pode ser um ID do Grupo de Hiperlinks da Tabela (is_group_url deve ser false). Consulte Listar Hiperlinks de Tabela e Grupos de Hiperlinks de Tabela para obter mais informações.
  • result: fornece JSON que indica o resultado da operação.

Consulte ADD_MEMBER Procedures para obter mais informações.

Remover um Membro do Grupo de Hiperlinks da Tabela

A qualquer momento, um usuário com privilégios apropriados pode remover um membro de um Grupo de Hiperlinks de Tabela.

Use DBMS_DATA_ACCESS.REMOVE_MEMBER para remover um membro de um Grupo de Hiperlinks de Tabela. Por exemplo:

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

Os parâmetros são:

  • id: especifica o ID do Grupo de Hiperlinks da Tabela. Este é o valor id mostrado no resultado quando você cria um Grupo de Hiperlinks de Tabela. Consulte Criar um Grupo de Hiperlinks de Tabela para obter mais informações.

  • member_id: especifica o ID do membro a ser removido do Grupo de Hiperlinks da Tabela.

  • result: fornece JSON que indica o resultado da operação.

Notas para remover um membro:

  • O valor member_id não pode ser um ID do Grupo de Hiperlinks da Tabela (is_group_url deve ser false). Consulte Observações para Listar Hiperlinks de Tabela e Grupos de Hiperlinks de Tabela para obter mais informações.
  • Você pode usar DBMS_DATA_ACCESS.LIST_MEMBERS para listar os membros de um Grupo de Hiperlinks de Tabela. Consulte Observações para Listar Hiperlinks de Tabela e Grupos de Hiperlinks de Tabela para obter mais informações.

  • Se o membro removido for um Hiperlink de Tabela existente que foi adicionado ao grupo usando DBMS_DATA_ACCESS.ADD_MEMBER, o membro será removido do grupo, mas o Hiperlink de Tabela poderá ser acessado diretamente até que seja explicitamente invalidado ou expire.

  • Se um Grupo de Hiperlink de Tabela contiver apenas um membro e esse membro for removido, o grupo será invalidado.

Consulte REMOVE_MEMBER Procedures para obter mais informações.

Invalidar um Grupo de Hiperlink de Tabela

A qualquer momento, um usuário com privilégios apropriados pode invalidar um Grupo de Hiperlink de Tabela.

Use DBMS_DATA_ACCESS.INVALIDATE_URL para invalidar um Grupo de Hiperlinks de Tabela. Por exemplo:

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

Os parâmetros são:

  • id: especifica o ID do Grupo de Hiperlinks da Tabela. Este é o valor id mostrado no resultado quando você cria um Grupo de Hiperlinks de Tabela. Consulte Criar um Grupo de Hiperlinks de Tabela para obter mais informações.

  • result: fornece JSON que indica o resultado da operação.

Observação

Quando o parâmetro DBMS_DATA_ACCESS.INVALIDATE_URL id é um Grupo de Hiperlinks de Tabela, o procedimento invalida o grupo e todos os membros do grupo, com exceção de todos os membros do grupo que foram adicionados com DBMS_DATA_ACCESS.ADD_MEMBER. Depois de executar DBMS_DATA_ACCESS.INVALIDATE_URL, os membros adicionados com DBMS_DATA_ACCESS.ADD_MEMBER mantêm seus valores de invalidação de Hiperlink de Tabela independentes e você pode invalidar esses Hiperlinks de Tabela individualmente usando DBMS_DATA_ACCESS.INVALIDATE_URL.

Consulte INVALIDATE_URL Procedures para obter mais informações.