Pacote DBMS_CLOUD_LINK

O pacote DBMS_CLOUD_LINK permite que um usuário registre uma tabela ou uma view como um conjunto de dados para acesso somente leitura com Links da Nuvem.

DBMS_CLOUD_LINK Visão Geral

Descreve o uso do pacote DBMS_CLOUD_LINK.

O pacote DBMS_CLOUD_LINK fornece o procedimento REGISTER que permite registrar uma tabela ou uma view como um conjunto de dados para uso com Links da Nuvem. Para que você possa registrar um conjunto de dados, o usuário ADMIN deverá conceder a um usuário permissão para registrar um conjunto de dados usando o procedimento DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Depois que o ADMIN executa GRANT_REGISTER, um usuário pode registrar uma tabela ou uma view que ele possui como um conjunto de dados registrado (ou registrar um objeto em outro esquema se o usuário tiver o privilégio READ WITH GRANT OPTION no objeto). Os conjuntos de dados registrados fornecem acesso remoto ao objeto registrado com Links da Nuvem, sujeito ao escopo especificado com o procedimento REGISTER.

Para executar DBMS_CLOUD_LINK.REGISTER, DBMS_CLOUD_LINK.UPDATE_REGISTRATION ou DBMS_CLOUD_LINK.UNREGISTER, você precisa ter privilégio de execução no pacote DBMS_CLOUD_LINK, além de ter executado DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER anteriormente. Por padrão, somente o usuário ADMIN e os esquemas com a atribuição PDB_DBA têm privilégio de execução em DBMS_CLOUD_LINK.

Resumo de Subprogramas DBMS_CLOUD_LINK

Mostra uma tabela com um resumo dos subprogramas incluídos no pacote DBMS_CLOUD_LINK.

Subprograma Descrição

Função DESCRIBE

Esta função recupera a descrição de um conjunto de dados. A descrição é fornecida quando um conjunto de dados é registrado com DBMS_CLOUD_LINK.REGISTER.

FIND Procedimento

Recupera o namespace, o nome e a descrição dos conjuntos de dados que correspondem à string de pesquisa. Os conjuntos de dados correspondentes só serão mostrados se estiverem acessíveis ao usuário, com base nas restrições de acesso.

Função GET_DATABASE_ID

Retorna um identificador exclusivo para a instância do Autonomous Database. As chamadas repetidas para DBMS_CLOUD_LINK.GET_DATABASE_ID na mesma instância sempre retornam o mesmo valor.

Procedimento GRANT_AUTHORIZATION

Concede autorização a um banco de dados especificado para acessar o conjunto de dados especificado.

Procedimento REGISTER

Registra uma tabela ou view como um conjunto de dados.

Procedimento REVOKE_AUTHORIZATION

Revoga a autorização de um banco de dados especificado para acessar o conjunto de dados especificado.

Procedimento UNREGISTER

Remove um conjunto de dados registrado.

Procedimento UPDATE_REGISTRATION

Atualiza atributos de um conjunto de dados que foi registrado usando DBMS_CLOUD_LINK.REGISTER.

Função DESCRIBE

Esta função recupera a descrição de um conjunto de dados. A descrição é fornecida quando um conjunto de dados é registrado com DBMS_CLOUD_LINK.REGISTER.

Sintaxe

DBMS_CLOUD_LINK.DESCRIBE(
      namespace        IN   VARCHAR2,
      name             IN   VARCHAR2
) return CLOB;

Parâmetros

Parâmetro Descrição

namespace

Especifica o namespace do conjunto de dados registrado.

name

Especifica o nome de um conjunto de dados registrado.

Nota de Uso

Você pode usar esta função sujeita às restrições de acesso impostas no momento do registro com DBMS_CLOUD_LINK.REGISTER. Se um conjunto de dados não estiver acessível a um banco de dados, sua descrição não será recuperada.

FIND Procedimento

Este procedimento recupera o namespace, o nome e a descrição dos conjuntos de dados que correspondem à string de pesquisa. Os conjuntos de dados correspondentes só serão mostrados se estiverem acessíveis ao usuário, com base nas restrições de acesso.

Sintaxe

DBMS_CLOUD_LINK.FIND(
      search_string        IN   VARCHAR2,
      search_result        OUT   CLOB
);

Parâmetros

Parâmetro Descrição

search_string

Especifica a string de pesquisa. A string de pesquisa não faz distinção entre maiúsculas e minúsculas.

search_result

Um documento JSON que inclui os valores de namespace, nome e descrição do conjunto de dados.

Nota de Uso

A string de pesquisa não faz distinção entre maiúsculas e minúsculas e o pacote aproveita a pesquisa de texto livre usando o Oracle Text.

Função GET_DATABASE_ID

A função retorna um identificador exclusivo para a instância do Autonomous Database. As chamadas repetidas para DBMS_CLOUD_LINK.GET_DATABASE_ID na mesma instância sempre retornam o mesmo valor.

Você pode chamar essa função em um banco de dados que está acessando um conjunto de dados registrado remotamente para obter o ID do banco de dados. Isso permite que você forneça o iD de banco de dados para que o proprietário de um conjunto de dados possa aproveitar um controle de acesso a dados mais detalhado, por exemplo, com VPD, com base em IDs de banco de dados especificados de sites remotos.

Um ID de banco de dados identifica cada banco de dados remoto que acessa um conjunto de dados registrado, para rastrear e auditar o acesso nas Exibições V$CLOUD_LINK_ACCESS_STATS e GV$CLOUD_LINK_ACCESS_STATS no banco de dados que possui um conjunto de dados registrado.

Sintaxe

DBMS_CLOUD_LINK.GET_DATABASE_ID()
  RETURN VARCHAR2;

Observações de Uso

Os links de nuvem usam o identificador exclusivo que DBMS_CLOUD_LINK.GET_DATABASE_ID retorna para identificar bancos de dados individuais que estão acessando um conjunto de dados remotamente. O banco de dados proprietário do conjunto de dados registrado rastreia e audita o ID do banco de dados como um registro da origem para acesso ao conjunto de dados nas Views V$CLOUD_LINK_ACCESS_STATS e GV$CLOUD_LINK_ACCESS_STATS.

O identificador DBMS_CLOUD_LINK.GET_DATABASE_ID está disponível como um valor SYS_CONTEXT para que você possa obter programaticamente essas informações sobre uma sessão remota de conexão usando SYS_CONTEXT, para restringir e controlar ainda mais quais dados específicos podem ser acessados remotamente por instâncias individuais do Autonomous Database com VPDs (Virtual Private Databases).

Retornar Valores

Um identificador exclusivo para a instância do Autonomous Database de VARCHAR2.

Procedimento GRANT_AUTHORIZATION

Este procedimento concede autorização a um banco de dados especificado para acessar o conjunto de dados especificado.

Sintaxe

DBMS_CLOUD_LINK.GRANT_AUTHORIZATION(
      database_id        IN   VARCHAR2,
      namespace          IN   VARCHAR2 DEFAULT,
      name               IN   VARCHAR2
);

Parâmetros

Parâmetro Descrição

database_id

Especifica o ID do banco de dados para uma instância do Autonomous Database. Use DBMS_CLOUD_LINK.GET_DATABASE_ID para obter o ID do banco de dados.

namespace

Especifica o namespace do conjunto de dados para conceder autorização de acesso para o database_id especificado.

name

Especifica o nome do conjunto de dados para conceder autorização de acesso para o database_id especificado.

Procedimento REGISTER

O procedimento registra uma tabela ou uma view como um conjunto de dados para permitir acesso remoto somente leitura, sujeito a restrições impostas pelo parâmetro scope.

Sintaxe

DBMS_CLOUD_LINK.REGISTER(
     schema_name      IN VARCHAR2,
     schema_object    IN VARCHAR2,
     namespace        IN VARCHAR2,
     name             IN VARCHAR2,
     description      IN CLOB,
     scope            IN CLOB,
     auth_required    IN BOOLEAN DEFAULT,
     data_set_owner   IN VARCHAR2 DEFAULT,
     offload_targets  IN CLOB DEFAULT

);

Parâmetros

Parâmetro Descrição

schema_name

Especifica o proprietário da tabela ou view especificada com o parâmetro schema_object.

schema_object

Especifica o nome de uma tabela ou de uma view. Os objetos válidos são:

  • Tabelas (incluindo Heap, Externa ou Híbrida)
  • Views
  • Views Materializadas
  • Tabelas de Nuvem

Outros objetos, como exibições analíticas ou sinônimos, não são suportados.

namespace

Especifica o namespace do conjunto de dados.

Um valor NULL especifica um valor namespace gerado pelo sistema, exclusivo da instância do Autonomous Database.

name

Especifica o nome do conjunto de dados.

description

Especifica o texto para descrever os dados.

scope

Descreve quem tem permissão para acessar o conjunto de dados. O valor é uma lista separada por vírgulas que consiste em um ou mais dos seguintes itens:

  • OCID do Banco de Dados: O acesso ao conjunto de dados é permitido para as instâncias específicas do Autonomous Database identificadas pelo OCID.

  • OCID do Compartimento: O acesso ao conjunto de dados é permitido para bancos de dados nos compartimentos identificados pelo OCID do compartimento.

  • OCID da tenancy: O acesso ao conjunto de dados é permitido para bancos de dados nas tenancies identificadas pelo OCID da tenancy.

  • Nome da região: O acesso ao conjunto de dados é permitido para bancos de dados na região identificada pela região nomeada. Por escopo, o acesso aos Links da Nuvem é limitado a uma única região e não é entre regiões. Um consumidor de outra região só poderá acessar um conjunto de dados quando existir um Clone Atualizável entre regiões do banco de dados que seja o proprietário do conjunto de dados na região do banco de dados consumidor.

    Consulte Registrar ou Cancelar o Registro de um Conjunto de Dados em uma Região Diferente para obter mais informações.

  • MY$COMPARTMENT: O acesso ao conjunto de dados é permitido para bancos de dados no mesmo compartimento que o proprietário do conjunto de dados.

  • MY$TENANCY: O acesso ao conjunto de dados é permitido para bancos de dados na mesma tenancy que o proprietário do conjunto de dados.

  • MY$REGION: O acesso ao conjunto de dados é permitido para bancos de dados na mesma região que o proprietário do conjunto de dados.

  • Lista de regiões: O acesso ao conjunto de dados é permitido para bancos de dados nas regiões especificadas

    Por exemplo:

    scope   =>  'us-phoenix-1,us-ashburn-1',

    Um consumidor de outra região só poderá acessar um conjunto de dados quando existir um Clone Atualizável entre regiões do banco de dados que seja o proprietário do conjunto de dados na região do banco de dados consumidor.

Os valores de escopo, MY$REGION, MY$TENANCY e MY$COMPARTMENT são variáveis que atuam como macros de conveniência e são resolvidas como OCIDs.

auth_required

Especifica que uma autorização adicional é necessária para que os bancos de dados leiam do conjunto de dados. Os casos possíveis são os seguintes:

  • Os bancos de dados que estão dentro do SCOPE especificado e foram autorizados com o DBMS_CLOUD_LINK.GRANT_AUTHORIZATION podem exibir linhas do conjunto de dados.

  • Qualquer banco de dados que esteja dentro do SCOPE especificado, mas não tenha sido autorizado com DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, não pode exibir linhas do conjunto de dados. Nesse caso, os consumidores sem autorização veem o conjunto de dados como vazio.

  • Os bancos de dados que não estão dentro do SCOPE especificado veem um erro ao tentar acessar o conjunto de dados.

data_set_owner

Especifica o proprietário do conjunto de dados. Indica a quem o conjunto de dados pertence ou quem é responsável por atualizar e manter o conjunto de dados. Por exemplo, você pode definir data_set_owner como o endereço de e-mail da pessoa que registrou o conjunto de dados.

offload_targets

Especifica um ou mais OCIDs do Autonomous Database de clones atualizáveis nos quais o acesso aos conjuntos de dados é descarregado, do Autonomous Database no qual o conjunto de dados é registrado.

O valor offload_targets é um documento JSON que define um ou mais pares de valores de chave CLOUD_LINK_DATABASE_ID e OFFLOAD_TARGET:

  • CLOUD_LINK_DATABASE_ID é um destes:

    • Um ID de banco de dados: especifica um ID de banco de dados para o consumidor do conjunto de dados cuja solicitação é descarregada para o clone atualizável correspondente especificado com o valor OFFLOAD_TARGET.

      Obtenha o ID do banco de dados executando DBMS_CLOUD_LINK.GET_DATABASE_ID. Consulte Função GET_DATABASE_ID para obter mais informações.

    • ANY: Especifica que qualquer solicitação do consumidor do conjunto de dados é descarregada para o destino de descarregamento correspondente. A solicitação do conjunto de dados de um consumidor será roteada para o destino de descarregamento correspondente.

      Se você especificar ANY sem especificar IDs de banco de dados, todas as solicitações de conjunto de dados dos consumidores serão descarregadas para o clone atualizável especificado com o valor OFFLOAD_TARGET.

      Se você especificar IDs de banco de dados e ANY, as solicitações de conjunto de dados dos consumidores que não corresponderem a um ID de banco de dados serão descarregadas para o clone atualizável especificado com o valor OFFLOAD_TARGET.

  • O OFFLOAD_TARGET é o OCID de uma instância do Autonomous Database que é um clone atualizável.

Por exemplo, o seguinte mostra uma amostra JSON com três pares de valores OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

Quando um consumidor do conjunto de dados solicita acesso a um conjunto de dados que você registra em offload_targets com a palavra-chave ANY, qualquer solicitação de acesso é descarregada para o clone atualizável identificado com OFFLOAD_TARGET no JSON fornecido (exceto solicitações que têm uma entrada explícita no JSON fornecido).

Por exemplo, o seguinte mostra uma amostra JSON com um par de valores OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID explícito e uma entrada ANY:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "ANY",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

DBMS_CLOUD_LINK.REGISTER reportará um erro se o OCID fornecido como um valor OFFLOAD_TARGET não for um OCID de um clone atualizável na mesma região.

Consulte Usar Clones Atualizáveis com o Autonomous Database para obter informações sobre como usar clones atualizáveis.

Observações de Uso

  • Depois que você registrar um objeto, os usuários poderão precisar aguardar até dez (10) minutos para acessar o objeto com Links de Nuvem.

  • Use o procedimento DBMS_CLOUD_LINK.UPDATE_REGISTRATION para alterar os atributos de um conjunto de dados existente.

    O tempo de espera para a conclusão da atualização pode ser de até 10 minutos para que uma alteração de registro seja propagada e acessível por meio dos Links da Nuvem. Esse atraso pode afetar a precisão dos dados nas exibições DBA_CLOUD_LINK_REGISTRATIONS e DBA_CLOUD_LINK_ACCESS.

  • Você pode registrar uma tabela ou view que reside no esquema de outro usuário quando tiver privilégios READ WITH GRANT OPTION para a tabela ou view.

  • O escopo definido quando você registra um conjunto de dados só é respeitado quando ele corresponde ou é mais restritivo do que o valor definido com DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Por exemplo, suponha que o ADMIN tenha concedido o escopo 'MY$TENANCY' com GRANT_REGISTER e o usuário especifique 'MY$REGION' quando registrar um conjunto de dados com DBMS_CLOUD_LINK.REGISTER. Nesse caso, eles veriam um erro como o seguinte:

    ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION
  • Certas verificações de validade hierárquica para registro não podem ocorrer no momento do registro. Registros inválidos não serão visíveis, detectáveis ou mesmo acessíveis a ninguém.

  • Para usar DBMS_CLOUD_LINK.REGISTER, você deve ter o privilégio de execução no pacote DBMS_CLOUD_LINK, além do privilégio de registro atribuído com DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Somente o usuário ADMIN e os esquemas com PDB_DBA têm esse privilégio por padrão.

  • Quando você registra um conjunto de dados em um clone atualizável em uma região remota, a chamada de DBMS_CLOUD_LINK.REGISTER no clone da região remota deve usar os mesmos parâmetros com os mesmos valores do banco de dados de origem, com exceção do parâmetro offload_targets.

    Por exemplo, quando você executar DBMS_CLOUD_LINK.REGISTER com escopo definido como MY$COMPARTMENT na instância do Autonomous Database de origem, execute o procedimento novamente no clone atualizável entre regiões com o mesmo valor de parâmetro de escopo (MY$COMPARTMENT).

  • Se você especificar o parâmetro offload_targets com DBMS_CLOUD_LINK.REGISTER na origem, omita esse parâmetro ao registrar o conjunto de dados em um clone atualizável entre regiões.

Procedimento REVOKE_AUTHORIZATION

Este procedimento revoga a autorização de um banco de dados especificado para acessar o conjunto de dados especificado.

Sintaxe

DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION(
      database_id        IN   VARCHAR2,
      namespace          IN   VARCHAR2 DEFAULT,
      name               IN   VARCHAR2
);

Parâmetros

Parâmetro Descrição

database_id

Especifica o ID do banco de dados para uma instância do Autonomous Database. Use DBMS_CLOUD_LINK.GET_DATABASE_ID para obter o ID do banco de dados.

namespace

Especifica o namespace do conjunto de dados para revogar a autorização de acesso para o database_id especificado.

name

Especifica o nome do conjunto de dados para revogar a autorização de acesso para o database_id especificado.

Procedimento UNREGISTER

O procedimento permite que um usuário que registrou anteriormente uma tabela ou uma view com o procedimento REGISTER cancele o registro da tabela ou view para que ela não fique mais disponível para acesso remoto.

Sintaxe

DBMS_CLOUD_LINK.UNREGISTER(
      namespace        IN   VARCHAR2,
      name             IN   VARCHAR2
);

Parâmetros

Parâmetro Descrição

namespace

Especifica um nome do usuário.

name

Especifica o nome do conjunto de dados.

Nota de Uso

DBMS_CLOUD_LINK.UNREGISTER também pode levar até dez (10) minutos para ser propagado totalmente, após o que os dados podem ser acessados remotamente por mais tempo.

Procedimento UPDATE_REGISTRATION

O procedimento atualiza um ou mais atributos de um conjunto de dados registrado usando DBMS_CLOUD_LINK.REGISTER.

Sintaxe

DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
     namespace        IN VARCHAR2,
     name             IN VARCHAR2,
     description      IN CLOB      DEFAULT,
     scope            IN CLOB      DEFAULT,
     auth_required    IN BOOLEAN   DEFAULT,
     data_set_owner   IN VARCHAR2  DEFAULT,
     offload_targets  IN CLOB      DEFAULT

);

Parâmetros

Parâmetro Descrição
namespace

Especifica o namespace do conjunto de dados a ser atualizado.

name

Especifica o nome do conjunto de dados a ser atualizado.

description

Especifica o texto atualizado para descrever os dados.

Se NULL for informado para esse valor de parâmetro, o atributo não será modificado.

Por default, esse atributo não é atualizado.

scope

Atualize o escopo com o valor especificado. O escopo descreve quem tem permissão para acessar o conjunto de dados. O valor é uma lista separada por vírgulas que consiste em um ou mais dos seguintes itens:

  • OCID do Banco de Dados: O acesso ao conjunto de dados é permitido para as instâncias específicas do Autonomous Database identificadas pelo OCID.

  • OCID do Compartimento: O acesso ao conjunto de dados é permitido para bancos de dados nos compartimentos identificados pelo OCID do compartimento.

  • OCID da tenancy: O acesso ao conjunto de dados é permitido para bancos de dados nas tenancies identificadas pelo OCID da tenancy.

  • Nome da região: O acesso ao conjunto de dados é permitido para bancos de dados na região identificada pela região nomeada. Por escopo, o acesso aos Links da Nuvem é limitado a uma única região e não é entre regiões. Um consumidor de outra região só poderá acessar um conjunto de dados quando existir um Clone Atualizável entre regiões do banco de dados que seja o proprietário do conjunto de dados na região do banco de dados consumidor.

    Consulte Registrar ou Cancelar o Registro de um Conjunto de Dados em Outra Região para obter mais informações.

  • MY$COMPARTMENT: O acesso ao conjunto de dados é permitido para bancos de dados no mesmo compartimento que o proprietário do conjunto de dados.

  • MY$TENANCY: O acesso ao conjunto de dados é permitido para bancos de dados na mesma tenancy que o proprietário do conjunto de dados.

  • MY$REGION: O acesso ao conjunto de dados é permitido para bancos de dados na mesma região que o proprietário do conjunto de dados.

  • Lista de regiões: O acesso ao conjunto de dados é permitido para bancos de dados nas regiões especificadas

    Por exemplo:

    scope   =>  'us-phoenix-1,us-ashburn-1',

    Um consumidor de outra região só poderá acessar um conjunto de dados quando existir um Clone Atualizável entre regiões do banco de dados que seja o proprietário do conjunto de dados na região do banco de dados consumidor.

Os valores de escopo, MY$REGION, MY$TENANCY e MY$COMPARTMENT são variáveis que agem como macros de conveniência e resolvem para OCIDs.

Se NULL for informado para esse valor de parâmetro, o atributo não será modificado.

Por default, esse atributo não é atualizado.

auth_required

Especifica que é necessária uma autorização adicional para que os bancos de dados leiam do conjunto de dados. Os casos a seguir são possíveis:

  • Os bancos de dados que estão dentro do SCOPE especificado e foram autorizados com o DBMS_CLOUD_LINK.GRANT_AUTHORIZATION podem exibir linhas do conjunto de dados.

  • Qualquer banco de dados que esteja dentro do SCOPE especificado, mas não tenha sido autorizado com DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, não pode exibir linhas do conjunto de dados. Nesse caso, os consumidores sem autorização veem o conjunto de dados como vazio.

  • Os bancos de dados que não estão dentro do SCOPE especificado veem um erro ao tentar acessar o conjunto de dados.

Se NULL for informado para esse valor de parâmetro, o atributo não será modificado.

Por default, esse atributo não é atualizado.

data_set_owner

Especifica o proprietário do conjunto de dados. Indica a quem o conjunto de dados pertence ou a quem é responsável por atualizar e manter o conjunto de dados. Por exemplo, você pode definir data_set_owner como o endereço de e-mail da pessoa que registrou o conjunto de dados.

Se NULL for informado para esse valor de parâmetro, o atributo não será modificado.

Por default, esse atributo não é atualizado.

offload_targets

Especifica um ou mais OCIDs do Autonomous Database de clones atualizáveis nos quais o acesso aos conjuntos de dados é descarregado, do Autonomous Database no qual o conjunto de dados é registrado.

O valor offload_targets é um documento JSON que define um ou mais pares de valores de chave CLOUD_LINK_DATABASE_ID e OFFLOAD_TARGET:

  • CLOUD_LINK_DATABASE_ID é um dos seguintes:

    • Um ID de banco de dados: Especifica um ID de banco de dados para o consumidor do conjunto de dados cuja solicitação é descarregada para o clone atualizável correspondente especificado com o valor OFFLOAD_TARGET.

      Obtenha o ID do banco de dados executando DBMS_CLOUD_LINK.GET_DATABASE_ID. Consulte Função GET_DATABASE_ID para obter mais informações.

    • ANY: Especifica que qualquer solicitação do consumidor do conjunto de dados é transferida para o destino de descarregamento correspondente. A solicitação de conjunto de dados de um consumidor será roteada para o destino de descarregamento correspondente.

      Se você especificar ANY sem especificar IDs de banco de dados, todas as solicitações de conjunto de dados dos consumidores serão descarregadas para o clone atualizável especificado com o valor OFFLOAD_TARGET.

      Se você especificar IDs de banco de dados e ANY, as solicitações de conjunto de dados de consumidores que não correspondem a um ID de banco de dados serão descarregadas para o clone atualizável especificado com o valor OFFLOAD_TARGET.

  • O OFFLOAD_TARGET é o OCID de uma instância do Autonomous Database que é um clone atualizável.

Por exemplo, o seguinte mostra uma amostra JSON com três pares de valores OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

Quando um consumidor de conjunto de dados solicita acesso a um conjunto de dados que você registra em offload_targets com a palavra-chave ANY, qualquer solicitação de acesso é descarregada para o clone atualizável identificado com OFFLOAD_TARGET no JSON fornecido (exceto solicitações que têm uma entrada explícita no JSON fornecido).

Por exemplo, o seguinte mostra uma amostra JSON com um par de valores OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID explícito e uma entrada ANY:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "ANY",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

DBMS_CLOUD_LINK.REGISTER reportará um erro se o OCID fornecido como um valor OFFLOAD_TARGET não for um OCID de um clone atualizável na mesma região.

Consulte Usar Clones Atualizáveis com o Autonomous Database para obter informações sobre o uso de clones atualizáveis.

Se NULL for informado para esse valor de parâmetro, o atributo não será modificado.

Por default, esse atributo não é atualizado.

Observações sobre Uso

  • Os atributos schema_name e schema_object de um conjunto de dados não podem ser atualizados.

  • Depois de atualizar o registro de um objeto, os usuários podem precisar aguardar até dez (10) minutos para acessar o objeto usando os atributos atualizados com os Links da Nuvem.

  • Você pode atualizar o registro de uma tabela ou view que reside no esquema de outro usuário quando tiver privilégios READ WITH GRANT OPTION para a tabela ou view.

  • O escopo definido quando você atualiza o registro de um conjunto de dados só é respeitado quando ele corresponde ou é mais restritivo do que o valor definido com DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Por exemplo, suponha que o ADMIN tenha concedido o escopo 'MY$TENANCY' com GRANT_REGISTER e o usuário especifique 'MY$REGION' quando atualizar o registro do conjunto de dados com DBMS_CLOUD_LINK.UPDATE_REGISTRATION. Nesse caso, eles veriam um erro como o seguinte:

    ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION
  • Certas verificações de validade hierárquica para um registro atualizado não podem ocorrer quando o registro é atualizado. Registros inválidos não serão visíveis, detectáveis ou mesmo acessíveis a ninguém.

  • O usuário que registrou um conjunto de dados pode atualizar seus atributos com DBMS_CLOUD_LINK.UPDATE_REGISTRATION. Além disso, você deve ter o privilégio de execução no pacote DBMS_CLOUD_LINK e o privilégio de registro atribuído com DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Somente o usuário ADMIN e os esquemas com PDB_DBA têm esse privilégio por padrão.

  • Quando você atualiza o registro de um conjunto de dados em um clone atualizável em uma região remota, a chamada de DBMS_CLOUD_LINK.UPDATE_REGISTRATION no clone da região remota deve usar os mesmos parâmetros com os mesmos valores do banco de dados de origem, com exceção do parâmetro offload_targets.

    Por exemplo, quando você executar DBMS_CLOUD_LINK.UPDATE_REGISTRATION com escopo definido como MY$COMPARTMENT na instância do Autonomous Database de origem, execute o procedimento novamente no clone atualizável entre regiões com o mesmo valor de parâmetro de escopo (MY$COMPARTMENT).

  • Se você especificar o parâmetro offload_targets com DBMS_CLOUD_LINK.REGISTER na origem, omita esse parâmetro ao registrar o conjunto de dados em um clone atualizável entre regiões.