Resumo de Subprogramas DBMS_CLOUD_REPO

Esta seção abrange os subprogramas DBMS_CLOUD_REPO fornecidos com o Autonomous Database.

Tópicos Relacionados

Pré-requisitos

Como desenvolvedor, você pode usar procedimentos DBMS_CLOUD com Autonomous Databases implantados no Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.

Dependendo da opção de implantação, os pré-requisitos a seguir devem ser atendidos para usar os procedimentos DBMS_CLOUD com provedores de serviços Amazon S3, Azure Blob Storage e Google Cloud Storage.

Uma conectividade de saída deve ter sido configurada usando um gateway NAT pelo administrador da frota, conforme descrito abaixo:
  • Crie um gateway NAT na Rede Virtual na Nuvem (VCN) em que seus recursos do Autonomous Database residem seguindo as instruções em Criar um Gateway NAT na Documentação do Oracle Cloud Infrastructure.
  • Após criar o gateway NAT, adicione uma regra de roteamento e uma regra de segurança de saída a cada sub-rede (na VCN) na qual os recursos do Autonomous Database residem para que esses recursos possam usar o gateway para obter uma chave pública da sua instância do Azure AD:
    1. Vá para a página Detalhes da Sub-rede da sub-rede.
    2. Na guia Informações da Sub-rede, clique no nome da Tabela de Rota da sub-rede para exibir sua respectiva página Detalhes da Tabela de Rota.
    3. Na tabela de Regras de Roteamento existentes, verifique se já existe uma regra com as seguintes características:
      • Destino: 0.0.0.0/0
      • Tipo de Destino: Gateway NAT
      • Alvo: O nome do gateway NAT recém-criado na VCN

      Se essa regra não existir, clique em Adicionar Regras de Rota e adicione uma regra de roteamento com essas características.

    4. Retorne à página Detalhes da Sub-rede da sub-rede.
    5. Na tabela Listas de Segurança da sub-rede, clique no nome da lista de segurança da sub-rede para exibir a página Detalhes da Lista de Segurança.
    6. No menu lateral, em Recursos, clique em Regras de Saída.
    7. Na tabela de Regras de Saída existentes, verifique se já existe uma regra com as seguintes características:
      • Tipo de Destino: CIDR
      • Destino: 0.0.0.0/0
      • Protocolo IP: TCP
      • Faixa de Portas de Origem: 443
      • Faixa de Portas de Destino: Todas

      Se essa regra não existir, clique em Adicionar Regras de Saída e adicione uma regra de saída com essas características.

As definições de Proxy HTTP em seu ambiente devem permitir que o banco de dados acesse o provedor de serviços em nuvem.

Essas definições são definidas pelo administrador da frota ao criar a infraestrutura do Exadata Cloud@Customer, conforme descrito em Usando a Console para Provisionar o Exadata Database Service on Cloud@Customer.

Observação:

A configuração de rede, incluindo o Proxy HTTP, só poderá ser editada até que o Exadata Infrastructure esteja no estado Exige Ativação. Depois de ativado, você não poderá editar essas configurações.

A configuração de um Proxy HTTP para uma Infraestrutura do Exadata já provisionada precisa de uma Solicitação de Serviço (SR) no My Oracle Support. Consulte Criar uma Solicitação de Serviço no My Oracle Support para obter detalhes.

Procedimento CREATE_BRANCH

Esse procedimento cria uma ramificação no Repositório de Código na Nuvem identificada pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.CREATE_BRANCH(
    repo               IN   CLOB,
    branch_name        IN   VARCHAR2,
    parent_branch_name IN   VARCHAR2 DEFAULT NULL,
    parent_commit_id   IN   VARCHAR2 DEFAULT NULL
 );

Parâmetros

Parâmetro Descrição
repo

Especifica o identificador de repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

branch_name

Especifica o nome da ramificação do repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

parent_branch_name

Cria a nova ramificação usando o commit principal da ramificação pai especificada.

Esse parâmetro é suportado em todos os provedores de nuvem.

Se você não fornecer um valor parent_branch_name, o parent_branch_name será definido como main.

parent_commit_id

Cria a nova ramificação usando o commit do repositório especificado.

Esse parâmetro é suportado em todos os provedores de nuvem.

Se você não fornecer um valor parent_commit_id, parent_commit_id será definido como um valor NULL.

Exemplo

Observação:

Para criar uma ramificação em um repositório do Cloud Code, especifique a ramificação pai ou o ID de commit pai.
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

Observações de Uso

Para executar o procedimento DBMS_CLOUD_REPO.CREATE_BRANCH, você deve fazer log-in como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

Procedimento CREATE_REPOSITORY

Esse procedimento cria um Repositório de Código na Nuvem identificado pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.CREATE_REPOSITORY(
      repo                 IN   CLOB,
      description          IN   CLOB     DEFAULT NULL,
      private              IN   BOOLEAN  DEFAULT TRUE
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Esse parâmetro é suportado em todos os provedores de nuvem.

description Uma descrição curta do repositório.

Esse parâmetro é suportado pelos provedores de nuvem GITHUB e AWS.

private

O repositório é privado e apenas está acessível com credenciais válidas

Esse parâmetro só é suportado pelo provedor de nuvem GITHUB.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.CREATE_REPOSITORY(
    repo        => l_repo,
    description => 'My test repo',
    private => TRUE
    );
END;
/

Procedimento DELETE_BRANCH

Esse procedimento exclui uma ramificação no repositório de Código de Nuvem identificado pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.DELETE_BRANCH (
      repo              IN  CLOB, 
      branch_name       IN  VARCHAR2  DEFAULT NULL
 );

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

branch_name Exclua a ramificação de um repositório específico.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.DELETE_BRANCH (
      repo        => l_repo,
      branch_name => 'test_branch'
  );
END;
/

Observações de Uso

Para executar o procedimento DBMS_CLOUD_REPO.DELETE_BRANCH, você deve fazer log-in como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

Procedimento DELETE_FILE

Esse procedimento exclui um arquivo do repositório de Código de Nuvem identificado pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.DELETE_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      commit_details    IN  CLOB      DEFAULT NULL
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.
file_path Caminho de arquivo para excluir o arquivo no repositório.
branch_name Exclua o arquivo de uma ramificação específica.
commit_details

Detalhes de commit como documento JSON

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

Exemplo

BEGIN
  DBMS_CLOUD_REPO.DELETE_FILE(
      repo        => l_repo,
      file_path   => 'scripts/test3.sql',
      branch_name => 'test_branch'
  );
END;
/

Procedimento DELETE_REPOSITORY

Esse procedimento exclui o Repositório de Código na Nuvem identificado pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.DELETE_REPOSITORY(
       repo => l_repo
  );
END;
/

Procedimento EXPORT_OBJECT

Esse procedimento faz upload dos metadados DDL de um objeto de banco de dados para o repositório de Código de Nuvem identificado pelo argumento de controle repo. Esse procedimento é uma maneira fácil de fazer upload da definição de metadados de um objeto de banco de dados em uma única etapa.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.EXPORT_OBJECT(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      object_type       IN  VARCHAR2,
      object_name       IN  VARCHAR2 DEFAULT NULL,
      object_schema     IN  VARCHAR2 DEFAULT NULL,
      branch_name       IN  VARCHAR2 DEFAULT NULL,
      commit_details    IN  CLOB     DEFAULT NULL,
      append            IN  BOOLEAN  DEFAULT FALSE
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.
file_path Caminho de arquivo para fazer upload de metadados de objeto no repositório.
object_type

Tipo de objeto suportado por DBMS_METADATA. Consulte DBMS_METADATA: Tabela de Tipos de Objeto em Oracle Database 19c PL/SQL Packages and Types Reference ou Oracle Database 23ai PL/SQL Packages and Types Reference para obter detalhes.

object_name Nome do objeto do banco de dados para recuperar metadados.
object_schema Esquema de propriedade do objeto de banco de dados.
branch_name Coloque o arquivo em uma ramificação específica.
commit_details

Detalhes de commit como documento JSON:{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

append Anexe a DDL de metadados ao arquivo existente.

Observações de Uso

Para controle personalizado na DDL do objeto, você pode usar DBMS_METADATA.GET_DDL junto com DBMS_CLOUD_REPO.PUT_FILE. Para obter a definição de metadados do objeto, o usuário atual deve ter privilégios para recuperar os metadados do objeto. Consulte DBMS_METADATA em Oracle Database 19c PL/SQL Packages and Types Reference ou Oracle Database 23ai PL/SQL Packages and Types Reference para obter os requisitos de segurança do pacote.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.EXPORT_OBJECT(
     repo        => l_repo,
     object_type => 'PACKAGE',
     object_name => 'MYPACK',
     file_path   => 'mypack.sql'
  );
END;
/

Procedimento EXPORT_SCHEMA

Este procedimento exporta metadados de todos os objetos em um esquema para a ramificação do Repositório de Código na Nuvem identificada pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.EXPORT_SCHEMA(
     repo            IN CLOB,
     file_path       IN VARCHAR2,
     schema_name     IN VARCHAR2,
     filter_list     IN CLOB         DEFAULT NULL,
     branch_name     IN VARCHAR2     DEFAULT NULL,
     commit_details  IN CLOB         DEFAULT NULL
);

Parâmetros

Parâmetro Descrição
repo

Especifica o identificador de repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

file_path

Especifica o nome do arquivo de esquema a ser carregado no repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

schema_name

Especifica o nome do esquema para o qual será feito upload de um script DDL na ramificação do Repositório de Código na Nuvem.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

filter_list

Especifica o CLOB do array JSON que define as condições de filtro para incluir ou excluir os objetos cujos metadados precisam ser exportados.

Esse parâmetro é suportado em todos os provedores de nuvem.

Os parâmetros JSON para filter_list são:
  • match_type: Especifica o tipo de filtro a ser aplicado aos tipos de objeto ou nomes de objeto.

    Os valores match_type válidos são:
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type: Especifica o tipo de objeto pelo qual filtrar.

  • name: Especifica o nome do objeto pelo qual filtrar.

branch_name

Especifica o nome da ramificação do repositório.

Esse parâmetro é suportado em todos os provedores de nuvem.

Se você não fornecer um valor branch_name, o branch_name será definido como a ramificação do repositório padrão.

commit_details

Detalhes de commit como documento JSON

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

Esse parâmetro é suportado em todos os provedores de nuvem.

Se você não fornecer um valor commit_details, o commit_details será definido como a mensagem de commit padrão que inclui as informações sobre o usuário da sessão do banco de dados atual e o nome do banco de dados que está executando o commit.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.EXPORT_SCHEMA(
    repo          => l_repo,
    schema_name   => 'USER1',
    file_path     => 'myschema_ddl.sql'
    filter_list   =>
        to_clob('[    
             { "match_type":"equal",
                 "type":"table"
             },
             { "match_type":"not_equal",
                 "type":"view"
             },
             { "match_type":"in",
                 "type":"table",
                 "name": " ''EMPLOYEE_SALARY'',''EMPLOYEE_ADDRESS'' "
             },
             { "match_type":"equal",
                 "type":"sequence",
                 "name": "EMPLOYEE_RECORD_SEQ"
             },
             { "match_type":"like",
                 "type":"table",
                 "name": "%OFFICE%"
             }    
        ]'
     );
  );
END;
/

Observações de Uso

Para executar o procedimento DBMS_CLOUD_REPO.EXPORT_SCHEMA, você deve fazer log-in como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

Procedimento e Função GET_FILE

A função faz download do conteúdo de um arquivo do repositório de Código de Nuvem. O procedimento permite fazer download do conteúdo de um arquivo do repositório de Código de Nuvem e salvar o arquivo em um diretório.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.GET_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_name       IN  VARCHAR2  DEFAULT NULL
) RETURN CLOB;
 
PROCEDURE DBMS_CLOUD_REPO.GET_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      directory_name    IN  VARCHAR2,
      target_file_name  IN  VARCHAR2  DEFAULT NULL,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_name       IN  VARCHAR2  DEFAULT NULL
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.
file_path Caminho do arquivo no repositório.
directory_name Nome do objeto de diretório para salvar o conteúdo do arquivo.
target_file_name Nome do arquivo de destino para salvar o conteúdo no diretório.
branch_name Obter o arquivo de uma ramificação específica.
tag_name Obter o arquivo de uma Tag específica.
commit_name Obter o arquivo de um commit específico.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.GET_FILE(
     repo             =>  l_repo,
     file_path        => 'test3.sql',
     directory_name   => 'DATA_PUMP_DIR',
     target_file_name => 'test2.sql'
  );
END;
/

Função INIT_AWS_REPO

Essa função inicializa um identificador de repositório da AWS e retorna um tipo opaco.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.INIT_AWS_REPO(
      credential_name IN  VARCHAR2,
      repo_name       IN  VARCHAR2,
      region          IN  VARCHAR2
)  RETURN repo;

Parâmetros

Parâmetro Descrição
credential_name

Objeto de credencial que especifica a chave de acesso/chave secreta do AWS CodeCommit.

repo_name Especifica o nome do repositório.
region Especifica a região da AWS para o repositório CodeCommit.

Exemplo

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_AWS_REPO(
                 credential_name => 'AWS_CRED',
                 repo_name       => 'my_repo',
                 region          => 'us-east-1'
           );
END;
/  

Função INIT_AZURE_REPO

Essa função inicializa um identificador de repositório do Azure e retorna um tipo opaco. Essa função só é suportada para o provedor de nuvem Azure.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.INIT_AZURE_REPO(
      credential_name IN  VARCHAR2,
      repo_name       IN  VARCHAR2,
      organization    IN  VARCHAR2,
      project         IN  VARCHAR2
)  RETURN repo;

Parâmetros

Parâmetro Descrição
credential_name

Objeto de credencial que especifica o Azure, com um Nome de Usuário e um Token de Acesso Pessoal (PAT).

repo_name Especifica o nome do repositório.
organization Especifica a Organização DevOps do Azure.
project Nome do Projeto da Equipe do Azure.

Exemplo

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_AZURE_REPO(
                 credential_name => 'AZURE_CRED',
                 repo_name       => 'my_repo',
                 organization    => 'myorg',
                 project         => 'myproj',
           );
END;
/

Função INIT_GITHUB_REPO

Essa função inicializa um identificador de repositório GitHub e retorna um tipo opaco.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.INIT_GITHUB_REPO(
      credential_name IN  VARCHAR2  DEFAULT NULL,
      repo_name       IN  VARCHAR2,
      owner           IN  VARCHAR2) 
RETURN repo;

Parâmetros

Parâmetro Descrição
credential_name

Objeto de credencial que especifica o GitHub.

E-mail do Usuário e Token de Acesso Pessoal (PAT).

repo_name Especifica o nome do repositório.
owner Especifica o proprietário do repositório.

Exemplo

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_GITHUB_REPO(
                 credential_name => 'GITHUB_CRED',
                 repo_name       => 'my_repo',
                 owner           => 'foo'
           );
END;
/  

Função INIT_REPO

Essa função inicializa um identificador de Repositório de Código na Nuvem e retorna um objeto JSON opaco. Essa função é uma interface genérica para aceitar um documento JSON, e evita ter de alterar o código; você só precisa alterar um documento JSON ao mover um repositório de código entre repositórios de Código na Nuvem.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.INIT_REPO(
     params      IN   CLOB)
RETURN CLOB;

Parâmetros

Parâmetro JSON Descrição
provider

Provedor de repositório de código na nuvem dos seguintes itens:

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name Especifica o nome do repositório. DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner Proprietário do Repositório GitHub. DBMS_CLOUD_REPO.PARAM_OWNER

Esse parâmetro só é aplicável ao provedor de nuvem GitHub.

region Região do Repositório da AWS DBMS_CLOUD_REPO_PARAM_REGION

Esse parâmetro só é aplicável ao provedor de nuvem da AWS.

organization Organização do Azure DBMS_CLOUD_REPO_PARAM_ORGANIZATION

Esse parâmetro só é aplicável ao provedor de nuvem do Azure.

project Projeto da Equipe do Azure DBMS_CLOUD_REPO_PARAM_PROJECT

Esse parâmetro só é aplicável ao provedor de nuvem do Azure

Exemplo

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_REPO(
          params => JSON_OBJECT('credential_name' value 'mycred',
                        'repo_name'       value 'myrepo',
                        'repo_owner'      value 'foo')
       );
END;
/

Procedimento INSTALL_FILE

Esse procedimento instala instruções SQL de um arquivo no repositório de Código de Nuvem identificado pelo argumento de controle repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.INSTALL_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_name       IN  VARCHAR2  DEFAULT NULL,
      stop_on_error     IN  BOOLEAN   DEFAULT TRUE
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.
file_path Caminho do arquivo no repositório.
branch_name Ramificação para instalar arquivo de uma ramificação específica.
tag_name Tag para instalar arquivo de uma Tag específica.
commit_name ID de Commit para instalar arquivo de um commit específico.
stop_on_error Interromper a execução das instruções SQL no primeiro erro.

Observações sobre Uso

  • Você pode instalar instruções SQL contendo SQL aninhado de um arquivo de repositório do Cloud Code usando o seguinte:

    • @: inclui um arquivo SQL com um caminho relativo para a RAIZ do repositório.

    • @@: inclui um arquivo SQL com um caminho relativo ao arquivo atual.

  • Os scripts são considerados como scripts de instalação de esquema e não como scripts SQL genéricos:

    • Os scripts não podem conter comandos específicos do cliente SQL*Plus.
    • Os scripts não podem conter variáveis de bind ou scripts parametrizados.
    • As instruções SQL devem terminar com uma barra em uma nova linha (/).
    • Os scripts podem conter instruções DDL e DML PLSQL, mas não há suporte para instruções SELECT diretas. Há suporte para o uso de SELECT em um bloco PL/SQL.

    Qualquer instrução SQL que possa ser executada usando EXECUTE IMMEDIATE funcionará se não contiver definições e variáveis de bind.

Exemplo

BEGIN
     DBMS_CLOUD_REPO.INSTALL_FILE(
         repo          => l_repo,
         file_path     => 'test3.sql',
         stop_on_error => FALSE
     );
END;
/

Procedimento INSTALL_SQL

Esse procedimento instala instruções SQL de um buffer fornecido como entrada.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.INSTALL_SQL(
      content           IN  CLOB,
      stop_on_error     IN  BOOLEAN  DEFAULT TRUE
);

Parâmetros

Parâmetro Descrições
content É o CLOB que contém as instruções SQL a serem executadas.
stop_on_error Interromper a execução das instruções SQL no primeiro erro.

Observações sobre Uso

  • Os scripts são considerados como scripts de instalação de esquema e não como scripts SQL genéricos:

    • Os scripts não podem conter comandos específicos do cliente SQL*Plus.
    • Os scripts não podem conter variáveis de bind ou scripts parametrizados.
    • As instruções SQL devem terminar com uma barra em uma nova linha (/).
    • Os scripts podem conter instruções DDL e DML PLSQL, mas não há suporte para instruções SELECT diretas. Há suporte para o uso de SELECT em um bloco PL/SQL.

    Qualquer instrução SQL que possa ser executada usando EXECUTE IMMEDIATE funcionará se não contiver definições e variáveis de bind.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.INSTALL_SQL(
      content   => 'create table t1 (x varchar2(30))' || CHR(10) || '/',
      stop_on_error => FALSE
  );
END;
/

Função LIST_BRANCHES

Essa função lista ramificações na ramificação do Repositório de Código na Nuvem identificada pelo argumento de controle repo.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.LIST_BRANCHES(
    repo           IN   CLOB
) RETURN list_branch_ret_tab PIPELINED PARALLEL_ENABLE;

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

Exemplo

SELECT * FROM DBMS_CLOUD_REPO.LIST_BRANCHES (repo => l_repo);

Observações sobre Uso

  • Essa é uma função de tabela em pipeline com tipo de retorno como list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES retorna a coluna: name, que indica o nome da ramificação do Repositório de Código da Nuvem.

Função LIST_COMMITS

Essa função lista commits na ramificação do Repositório de Código na Nuvem identificada pelo argumento de controle repo.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.LIST_COMMITS(
      repo              IN  CLOB,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      file_path         IN  VARCHAR2 DEFAULT NULL,
      commit_id         IN  VARCHAR2  DEFAULT NULL
) RETURN list_commit_ret_tab PIPELINED PARALLEL_ENABLE;

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

branch_name Listar commits de uma ramificação específica.

Esse parâmetro é suportado em todos os provedores de nuvem.

Se você não fornecer um valor branch_name, o branch_name será definido como main.

file_path Listar os arquivos no caminho da subpasta especificada no repositório.

Esse parâmetro só é suportado para provedores de nuvem Git e Azure.

Se você não fornecer um valor file_path, file_path será definido como um valor NULL.

commit_id Listar arquivos começando pelo sha/id especificado

Esse parâmetro é suportado em todos os provedores de nuvem.

Se você não fornecer um valor commit_id, commit_id será definido como um valor NULL.

Exemplo

SELECT name FROM DBMS_CLOUD_REPO.LIST_COMMITS(repo => l_repo);

Exemplo

SELECT name FROM DBMS_CLOUD_REPO.LIST_COMMITS (
    repo        => l_repo,
    commit_id   => '66dd2b23b74cd0afabd11af66c6aa9c550540ba6',
    file_path   => 'sub_dir/test11.sql'
);

Observações sobre Uso

  • Essa é uma função de tabela em pipeline com um tipo de retorno como list_commit_ret_tab.

  • DBMS_CLOUD_REPO.LIST_COMMITS retorna a coluna: commit_id.

Função LIST_FILES

Essa função faz download de um arquivo do repositório de Código de Nuvem. Existe a opção de poder acessar o conteúdo do arquivo por um nome específico de ramificação, tag ou commit. Por padrão, o arquivo é acessado pela ramificação de repositório padrão. Os resultados incluem os nomes de arquivos e metadados adicionais sobre eles.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.LIST_FILES(
      repo              IN  CLOB,
      path              IN  VARCHAR2  DEFAULT NULL,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_id         IN  VARCHAR2  DEFAULT NULL
) RETURN list_file_ret_tab PIPELINED PARALLEL_ENABLE;

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.
path Listar os arquivos no caminho da subpasta especificada no repositório.
branch_name Listar os arquivos de uma ramificação específica.
tag_name Listar os arquivos de uma Tag específica.
commit_name Listar os arquivos de um commit específico.

Observações sobre Uso

  • Essa é uma função de tabela em pipeline com tipo de retorno como list_file_ret_tab.

  • DBMS_CLOUD_REPO.LIST_FILES retorna as colunas: id, name, url e bytes.

Exemplo

SELECT name FROM DBMS_CLOUD_REPO.LIST_FILES(repo => l_repo);

NAME
-------------------------
test3.sql

Função LIST_REPOSITORIES

Essa função lista todos os Repositórios de Código na Nuvem identificados pelo argumento de controle repo. Os resultados incluem os nomes dos repositórios e metadados adicionais sobre eles.

Sintaxe

FUNCTION DBMS_CLOUD_REPO.LIST_REPOSITORIES(
      repo                 IN   CLOB
) RETURN list_repo_ret_tab PIPELINED PARALLEL_ENABLE;

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Esse parâmetro é suportado por todos os provedores de nuvem.

description Uma descrição curta do repositório.

Esse parâmetro é suportado pelos provedores de nuvem GITHUB e AWS.

private

O repositório é privado e apenas está acessível com credenciais válidas

Esse parâmetro é suportado pelo provedor de nuvem GITHUB.

Observações sobre Uso

  • Essa é uma função de tabela em pipeline com tipo de retorno como list_repo_ret_tab.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES retorna as colunas: id, name, owner, description, private, url, bytes, created e last_modified.

Exemplo

SELECT name description FROM DBMS_CLOUD_REPO.LIST_REPOSITORIES(:repo);

NAME                  DESCRIPTION
--------------------- ---------------
TestRepo1             My test repo

Procedimento MERGE_BRANCH

Esse procedimento mescla uma ramificação de repositório em outra ramificação especificada no Repositório de Código na Nuvem identificada pelo argumento de controle repo. No momento, o procedimento MERGE_BRANCH não é suportado no Azure.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.MERGE_BRANCH (
    repo               IN   CLOB,
    branch_name        IN   VARCHAR2,
    parent_branch_name IN   VARCHAR2 DEFAULT NULL,
    commit_details     IN   CLOB      DEFAULT NULL
 );

Parâmetros

Parâmetro Descrição
repo

Especifica o identificador de repositório.

Esse parâmetro é obrigatório e suportado pelos provedores de nuvem GITHUB e AWS.

branch_name

Especifica o nome da ramificação Git a ser mesclada.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

target_branch_name

Especifica o nome da ramificação de destino na qual mesclar.

Esse parâmetro é obrigatório e suportado em todos os provedores de nuvem.

commit_details

Detalhes de commit como documento JSON

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

Se você não fornecer um valor commit_details, o commit_details será definido como a mensagem de commit padrão que inclui as informações sobre o usuário atual da sessão do banco de dados e o nome do banco de dados que está executando o commit.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.MERGE_BRANCH (
    repo               => l_repo,
    branch_name        => 'test_branch',
    target_branch_name => 'main'
    );
END;
/

Observações de Uso

Para executar o procedimento DBMS_CLOUD_REPO.MERGE_BRANCH, você deve fazer log-in como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

Procedimento PUT_FILE

Esse procedimento faz upload de um arquivo para o repositório de Código de Nuvem identificado pelo argumento de controle repo. O procedimento é sobrecarregado para suportar o upload de um arquivo de um objeto de diretório ou o upload do conteúdo de um BLOB para o arquivo do repositório.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.PUT_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      contents          IN  BLOB,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      commit_details    IN  CLOB      DEFAULT NULL
);
 
PROCEDURE DBMS_CLOUD_REPO.PUT_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      directory_name    IN  VARCHAR2,
      source_file_name  IN  VARCHAR2  DEFAULT NULL,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      commit_details    IN  CLOB      DEFAULT NULL
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.
file_path Caminho de arquivo para fazer upload do arquivo no repositório.
contents BLOB contendo o conteúdo do arquivo.
directory_name Nome do objeto de diretório que contém o nome do arquivo.
source_file_name Nome do arquivo de origem para fazer upload no repositório.
branch_name Coloque o arquivo em uma ramificação específica.
commit_details

Detalhes do Commit como documento JSON:

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

Exemplo

BEGIN
  DBMS_CLOUD_REPO.PUT_FILE(
     repo   => l_repo,
  );
END;
/

Procedimento UPDATE_REPOSITORY

Esse procedimento atualiza um repositório de Código de Nuvem identificado pelo argumento de controle repo. Ele suporta a atualização do nome, da descrição ou do status de visibilidade privada, conforme suportado pelo repositório de Código de Nuvem.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.UPDATE_REPOSITORY(
      repo                 IN OUT  CLOB,
      new_name             IN      VARCHAR2 DEFAULT NULL,
      description          IN      CLOB     DEFAULT NULL,
      private              IN      BOOLEAN  DEFAULT NULL
);

Parâmetros

Parâmetro Descrição
repo Especifica o identificador de repositório.

Esse parâmetro é suportado em todos os provedores de nuvem.

new_name Novo nome do repositório.

Esse parâmetro é suportado em todos os provedores de nuvem.

description Uma descrição curta do repositório.

Esse parâmetro é suportado pelos provedores de nuvem GITHUB e AWS.

private

O repositório é privado e só pode ser acessado com credenciais válidas.

Esse parâmetro é suportado pelo provedor de nuvem GITHUB.

Exemplo

BEGIN
  DBMS_CLOUD_REPO.UPDATE_REPOSITORY(
     repo        => l_repo,
     new_name    => 'repo2'
  );
END;
/