Pacote DBMS_CLOUD_REPO

O pacote DBMS_CLOUD_REPO fornece o uso e o gerenciamento de repositórios de código hospedados na nuvem do Oracle Database. Os repositórios de código na nuvem suportados incluem GitHub, AWS CodeCommit e Azure Repos.

DBMS_CLOUD_REPO Visão Geral

O pacote DBMS_CLOUD_REPO fornece acesso fácil a arquivos nos Repositórios de Código de Nuvem (Git), incluindo: GitHub, AWS CodeCommit e Repositório do Azure.

Este pacote é uma única interface para acesso a repositórios de Código Multicloud e permite que você faça upload de arquivos SQL para repositórios Git ou instale scripts SQL diretamente dos Repositórios de Código da Nuvem. Este pacote também permite que você use um Cloud Code Repository para gerenciar versões de código para scripts SQL e instalar ou aplicar patch ao código do aplicativo dos repositórios Git.

Conceitos

  • Sistema de Controle de Versão Git: Git é um software para rastrear alterações em qualquer conjunto de arquivos, geralmente usado para coordenar o trabalho entre programadores que desenvolvem de forma colaborativa o código-fonte durante o desenvolvimento do software. Seus objetivos incluem velocidade, integridade de dados e suporte para fluxos de trabalho distribuídos e não lineares.

  • Repositório Git: Um repositório Git é um armazenamento virtual do seu projeto. Ele permite que você salve versões do seu código, que você pode acessar quando necessário.

Arquitetura

O pacote DBMS_CLOUD_REPO fornece quatro áreas de recursos:
  • Inicialização do repositório com identificador genérico do repositório de código da nuvem

    • Inicializar um Repositório de Código GitHub

    • Inicializar um Repositório de Código AWS CodeCommit

    • Inicializar um Repositório de Código de Repositório do Azure

  • Operações de Gerenciamento de Repositório

    • Criar um repositório

    • Atualizar um repositório

    • Listar repositórios

    • Excluir um repositório

  • Operações de Gerenciamento de Arquivos do Repositório

    • Faça upload de um arquivo no Repositório de Código do Oracle Database.

    • Faça download de um arquivo do Repositório de Código para o Oracle Database.

    • Excluir arquivos do Repositório de Código.

    • Listar arquivos do Repositório de Código.

  • Operações de Instalação SQL

    • Exporte a DDL de metadados do objeto do Banco de Dados para o repositório.
    • Instale instruções SQL de um arquivo no Repositório de Código no Oracle Database.

    • Instale instruções SQL de um buffer.

DBMS_CLOUD_REPO Estruturas de Dados

O pacote DBMS_CLOUD_REPO define tipos de registro e um tipo de objeto JSON genérico repo.

Objeto JSON REPO

DBMS_CLOUD_REPO REPO é um objeto JSON opaco para representar um Repositório de Código da Nuvem de um provedor de nuvem específico. Um objeto REPO pode ser passado para diferentes APIs DBMS_CLOUD_REPO. Esse objeto opaco garante que os procedimentos e funções DBMS_CLOUD_REPO sejam compatíveis com várias nuvens; você não precisa alterar nenhum código ao migrar de um provedor do Cloud Code Repository para outro Cloud Code Repository.

DBMS_CLOUD_REPO Grupos de Subprogramas

Os subprogramas do pacote DBMS_CLOUD_REPO podem ser agrupados em quatro categorias: Operações de Inicialização, Operações de Gerenciamento de Repositório, Operações de Arquivo e Operações de Instalação SQL.

DBMS_CLOUD_REPO Operações de Inicialização

Lista os subprogramas para operações de inicialização dentro do pacote DBMS_CLOUD_REPO.

Subprograma Descrição

Função INIT_AWS_REPO

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

Função INIT_AZURE_REPO

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

Função INIT_GITHUB_REPO

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

Função INIT_REPO

Essa função inicializa um handle do Cloud Code Repository e retorna um objeto JSON opaco.

DBMS_CLOUD_REPO Operações de Gerenciamento de Repositório

Mostra os subprogramas para operações de gerenciamento de repositório no pacote DBMS_CLOUD_REPO.

Subprograma Descrição

CREATE_REPOSITORY Procedimento

Este procedimento cria um Cloud Code Repository identificado pelo argumento de manipulação repo.

DELETE_REPOSITORY Procedimento

Este procedimento exclui o Cloud Code Repository identificado pelo argumento de manipulação repo.

Função LIST_REPOSITORIES

Essa função lista todos os Repositórios de Código da Nuvem identificados pelo argumento de handle repo.

UPDATE_REPOSITORY Procedimento

Este procedimento atualiza um repositório do Cloud Code identificado pelo argumento de manipulação repo. O procedimento suporta a atualização do nome, da descrição ou do status de visibilidade privada, conforme suportado pelo repositório do Cloud Code.

DBMS_CLOUD_REPO Operações de Gerenciamento de Ramificação do Repositório

Lista os subprogramas para operações de gerenciamento de ramificações de repositório no pacote DBMS_CLOUD_REPO.

Subprograma Descrição

CREATE_BRANCH Procedimento

Este procedimento cria uma ramificação em um Cloud Code Repository identificado pelo argumento de handle repo.

DELETE_BRANCH Procedimento

Este procedimento exclui uma ramificação em um Cloud Code Repository identificado pelo argumento de manipulação repo.

Função LIST_BRANCHES

Essa função lista todas as ramificações do Cloud Code Repository identificadas pelo argumento de manipulação repo.

Função LIST_COMMITS

Essa função lista todos os commits em uma ramificação do Cloud Code Repository identificada pelo argumento de manipulação repo.

MERGE_BRANCH Procedimento

Este procedimento mescla uma ramificação do Cloud Code Repository em outra ramificação especificada em um Cloud Code Repository identificado pelo argumento de manipulação repo.

DBMS_CLOUD_REPO Operações de Arquivo

Lista os subprogramas para operações de arquivo no pacote DBMS_CLOUD_REPO.

Subprograma Descrição

Procedimento DELETE_FILE

Este procedimento exclui um arquivo do repositório do Cloud Code identificado pelo argumento de manipulação repo.

GET_FILE Procedimento e Função

A função faz download do conteúdo de um arquivo do repositório do Cloud Code. O procedimento permite que você faça download do conteúdo de um arquivo do repositório do Cloud Code e salve o arquivo em um diretório.

Função LIST_FILES

Esta função faz download de um arquivo do repositório do Cloud Code. Opcionalmente, o conteúdo do arquivo pode ser acessado de uma ramificação, tag ou nome de commit específico. Por padrão, o arquivo é acessado na ramificação do repositório padrão.

PUT_FILE Procedimento

Este procedimento faz upload de um arquivo para o repositório do Cloud Code identificado pelo argumento de manipulação 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 CLOB para o arquivo de repositório.

DBMS_CLOUD_REPO Operações de Instalação SQL

Lista os subprogramas para operações de instalação SQL dentro do pacote DBMS_CLOUD_REPO.

Subprograma Descrição

EXPORT_OBJECT Procedimento

Este procedimento faz upload dos metadados DDL de um objeto de banco de dados para o repositório do Cloud Code identificado pelo argumento de manipulação repo.

EXPORT_SCHEMA Procedimento

Este procedimento exporta metadados de todos os objetos em um esquema para uma ramificação do Cloud Code Repository identificada pelo argumento de manipulação repo.

INSTALL_FILE Procedimento

Este procedimento instala instruções SQL de um arquivo no repositório do Cloud Code identificado pelo argumento de manipulação repo.

INSTALL_SQL Procedimento

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

Resumo dos Subprogramas DBMS_CLOUD_REPO

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

CREATE_BRANCH Procedimento

Este procedimento cria uma ramificação no Cloud Code Repository identificada pelo argumento de handle 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 handle do repositório.

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

branch_name

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

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

parent_branch_name

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

Esse parâmetro é suportado para 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 para todos os provedores de nuvem.

Se você não fornecer um valor parent_commit_id, o 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ção do Uso

Para executar o procedimento DBMS_CLOUD_REPO.CREATE_BRANCH, você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

CREATE_REPOSITORY Procedimento

Este procedimento cria um Cloud Code Repository identificado pelo argumento de manipulação 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 handle do repositório.

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

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

Esse parâmetro é compatível com o GITHUB e o provedor de nuvem AWS.

private

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

Este parâmetro só é suportado para o provedor de nuvem GITHUB.

Exemplo

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

DELETE_BRANCH Procedimento

Este procedimento exclui uma ramificação no repositório do Cloud Code identificado pelo argumento de manipulação 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 handle do repositório.

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

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

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

Exemplo

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

Observação do Uso

Para executar o procedimento DBMS_CLOUD_REPO.DELETE_BRANCH, você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

Procedimento DELETE_FILE

Este procedimento exclui um arquivo do repositório do Cloud Code identificado pelo argumento de manipulação 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 handle do repositório.
file_path Caminho do arquivo para excluir o arquivo no repositório.
branch_name Excluir arquivo de uma ramificação específica.
commit_details

Detalhes do Commit como um 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;
/

DELETE_REPOSITORY Procedimento

Este procedimento exclui o Cloud Code Repository identificado pelo argumento de manipulação repo.

Sintaxe

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Parâmetros

Parâmetro Descrição
repo Especifica o handle do repositório.

Exemplo

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

EXPORT_OBJECT Procedimento

Este procedimento faz upload dos metadados DDL de um objeto de banco de dados para o repositório do Cloud Code identificado pelo argumento de manipulação repo. Este 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 handle do repositório.
file_path Caminho do arquivo para fazer upload dos metadados do objeto no repositório.
object_type

Tipo de objeto suportado pelo DBMS_METADATA. Consulte DBMS_METADATA: tabela Tipos de Objeto para obter detalhes.

object_name Nome do objeto de banco de dados para recuperar metadados.
object_schema Esquema proprietário do objeto de banco de dados.
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" } }

append Anexe a DDL de metadados ao arquivo existente.

Observação do 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 o privilégio de recuperar os metadados do objeto. Consulte DBMS_METADATA 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;
/

EXPORT_SCHEMA Procedimento

Este procedimento exporta metadados de todos os objetos em um esquema para a ramificação do Cloud Code Repository identificada pelo argumento de manipulação 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 handle do repositório.

Esse parâmetro é obrigatório e suportado para 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 para todos os provedores de nuvem.

schema_name

Especifica o nome do esquema para o qual um script DDL deve ser submetido a upload para a ramificação Cloud Code Repository.

Esse parâmetro é obrigatório e suportado para 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 para 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 para 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 do Commit como um documento JSON

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

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

Se você não fornecer um valor commit_details, o commit_details será definido como a mensagem de confirmação 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ção do Uso

Para executar o procedimento DBMS_CLOUD_REPO.EXPORT_SCHEMA, você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

GET_FILE Procedimento e Função

A função faz download do conteúdo de um arquivo do repositório do Cloud Code. O procedimento permite que você faça download do conteúdo de um arquivo do repositório do Cloud Code e salve 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 handle do repositório.
file_path Caminho de arquivo no repositório.
directory_name Nome do objeto do 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 arquivo de uma ramificação específica.
tag_name Obter arquivo de uma Tag específica.
commit_name Obter 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 chave de acesso/chave secreta do AWS CodeCommit.

repo_name Especifica o nome de 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 do 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 de repositório.
organization Especifica a Organização DevOps do Azure.
project Nome do Azure Team Project.

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 handle 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 especificando GitHub.

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

repo_name Especifica o nome de 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 handle do Cloud Code Repository e retorna um objeto JSON opaco. Essa função é uma interface genérica para aceitar um documento JSON e evita a necessidade de alterar o código. Você só precisa alterar um documento JSON ao mover um repositório de código de um repositório do Cloud Code para outro repositório do Cloud Code.

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 de nuvem do seguinte:

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name Especifica o nome de repositório. DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner GitHub Proprietário do Repositório. 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

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

INSTALL_FILE Procedimento

Este procedimento instala instruções SQL de um arquivo no repositório do Cloud Code identificado pelo argumento de manipulação 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 handle do repositório.
file_path Caminho de arquivo no repositório.
branch_name Ramificação para instalar o arquivo de uma ramificação específica.
tag_name Tag para instalar o arquivo de uma Tag específica.
commit_name ID de commit para instalar o arquivo de um commit específico.
stop_on_error Pare de executar as instruções SQL no primeiro erro.

Observações de 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 à RAIZ do repositório.

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

  • Os scripts são destinados 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.
    • Scripts não podem conter variáveis de bind ou scripts parametrizados.
    • As instruções SQL devem ser encerradas com uma barra em uma nova linha (/).
    • Os scripts podem conter instruções DDL, DML PLSQL, mas instruções SELECT diretas não são suportadas. O uso de SELECT em um bloco PL/SQL é suportado.

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

Exemplo

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

INSTALL_SQL Procedimento

Este 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 CLOB que contém as instruções SQL a serem executadas.
stop_on_error Pare de executar as instruções SQL no primeiro erro.

Observações de Uso

  • Os scripts são destinados 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.
    • Scripts não podem conter variáveis de bind ou scripts parametrizados.
    • As instruções SQL devem ser encerradas com uma barra em uma nova linha (/).
    • Os scripts podem conter instruções DDL, DML PLSQL, mas instruções SELECT diretas não são suportadas. O uso de SELECT em um bloco PL/SQL é suportado.

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

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 Cloud Code Repository identificada pelo argumento de manipulação 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 handle do repositório.

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

Exemplo

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

Observações de Uso

  • Esta é uma função de tabela com 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 Cloud Code Repository identificada pelo argumento de handle 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 handle do repositório.

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

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

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

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

file_path Lista 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, o file_path será definido como um valor NULL.

commit_id Listar arquivos que começam no sha/id especificado

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

Se você não fornecer um valor commit_id, o 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 de Uso

  • Esta é uma função de tabela com 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

Esta função faz download de um arquivo do repositório do Cloud Code. Opcionalmente, o conteúdo do arquivo pode ser acessado de uma ramificação, tag ou nome de commit específico. Por padrão, o arquivo é acessado na ramificação do repositório padrão. Os resultados incluem os nomes dos arquivos e os metadados adicionais sobre os arquivos.

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 handle do repositório.
path Lista arquivos no caminho da subpasta especificada no repositório.
branch_name Listar arquivos de uma ramificação específica.
tag_name Listar arquivos de uma Tag específica.
commit_name Listar arquivos de um commit específico.

Observações de Uso

  • Esta é uma função de tabela com 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 da Nuvem identificados pelo argumento de handle repo. Se o handle repo tiver um nome de repositório especificado, a função não restringirá a listagem ao nome de repositório especificado; ela listará todos os repositórios acessíveis ao usuário.

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 handle do repositório. Esse parâmetro é suportado por todos os provedores de nuvem.

Observações de Uso

  • Esta é uma função de tabela com 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

MERGE_BRANCH Procedimento

Este procedimento mescla uma ramificação de repositório em outra ramificação especificada no Cloud Code Repository identificado pelo argumento de manipulação repo. O procedimento MERGE_BRANCH não é suportado no Azure no momento.

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 handle do repositório.

Esse parâmetro é obrigatório e compatível com 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 para todos os provedores de nuvem.

target_branch_name

Especifica o nome da ramificação de destino a ser mesclada.

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

commit_details

Detalhes do Commit como um 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 valor 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.MERGE_BRANCH (
    repo               => l_repo,
    branch_name        => 'test_branch',
    target_branch_name => 'main'
    );
END;
/

Observação do Uso

Para executar o procedimento DBMS_CLOUD_REPO.MERGE_BRANCH, você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_REPO.

PUT_FILE Procedimento

Este procedimento faz upload de um arquivo para o repositório do Cloud Code identificado pelo argumento de manipulação 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 de 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 handle do repositório.
file_path Caminho do arquivo para upload do arquivo no repositório.
contents BLOB contendo o conteúdo do arquivo.
directory_name Nome do objeto do diretório que contém o nome do arquivo.
source_file_name Nome do arquivo de origem para upload no repositório.
branch_name Coloque o arquivo em uma ramificação específica.
commit_details

Detalhes do Commit como um 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;
/

UPDATE_REPOSITORY Procedimento

Este procedimento atualiza um repositório do Cloud Code identificado pelo argumento de manipulação repo. UPDATE_REPOSITORY suporta a atualização do nome, da descrição ou do status de visibilidade privada, conforme suportado pelo repositório do Cloud Code.

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 handle do repositório.

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

new_name Novo nome do repositório.

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

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

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

private

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

Este parâmetro é suportado para o provedor de nuvem GITHUB.

Exemplo

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