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 de 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 em Repositórios de Código na Nuvem (Git), incluindo: GitHub, AWS CodeCommit e Azure Repos.

Esse pacote é uma interface única para acesso a repositórios de Código Multinuvem e permite fazer upload de arquivos SQL para repositórios Git ou instalar scripts SQL diretamente dos Repositórios de Código na Nuvem. Esse pacote também permite usar um Repositório de Código na Nuvem para gerenciar versões de código de scripts SQL e instalar ou corrigir com patch o código de aplicativo dos repositórios Git.

Conceitos

  • Sistema de Controle de Versão do Git: O Git é um software para rastrear alterações em qualquer conjunto de arquivos, geralmente usado para coordenar o trabalho entre os programadores, desenvolvendo colaborativamente o código-fonte durante o desenvolvimento do software. Suas metas incluem velocidade, integridade de dados e suporte para workflows distribuídos não lineares.

  • Repositório Git: É um armazenamento virtual do seu projeto. Ele permite salvar 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 de Repositório com Identificador de Repositório de Código na Nuvem Genérico

    • Inicializar um Repositório de Código GitHub

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

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

  • Operações de Gerenciamento de Repositório

    • Crie um repositório

    • Atualizar um repositório

    • Listar repositórios

    • Excluir um repositório

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

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

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

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

    • Liste os arquivos do Repositório de Código.

  • Operações de Instalação SQL

    • Exporte DDL de metadados do objeto de Banco de Dados para o repositório.
    • Instale instruções SQL de um arquivo no Repositório de Código do 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

Um DBMS_CLOUD_REPO REPO é um objeto JSON opaco que representa um Repositório de Código da Nuvem de um provedor de nuvem específico. Um objeto REPO pode ser informado para diferentes APIs DBMS_CLOUD_REPO. Esse objeto opaco garante que os procedimentos e as funções DBMS_CLOUD_REPO sejam compatíveis com multicloud; você não precisa alterar nenhum código ao migrar de um provedor de Repositório de Código na Nuvem para outro Repositório de Código na Nuvem.

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 no pacote DBMS_CLOUD_REPO.

Subprograma Descrição

INIT_AWS_REPO Função

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

INIT_AZURE_REPO Função

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

INIT_GITHUB_REPO Função

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

INIT_REPO Função

Essa função inicializa um identificador de Repositório de Código na Nuvem 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

Procedimento CREATE_REPOSITORY

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

DELETE_REPOSITORY Procedimento

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

Função LIST_REPOSITORIES

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

UPDATE_REPOSITORY Procedimento

Esse procedimento atualiza um repositório de Código de Nuvem identificado pelo argumento de controle repo. O procedimento 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.

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

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

Subprograma Descrição

Procedimento CREATE_BRANCH

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

Procedimento DELETE_BRANCH

Esse procedimento exclui uma ramificação em um Repositório de Código na Nuvem identificado pelo argumento de controle repo.

Função LIST_BRANCHES

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

Função LIST_COMMITS

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

Procedimento MERGE_BRANCH

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

DBMS_CLOUD_REPO Operações de Arquivo

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

Subprograma Descrição

DELETE_FILE Procedimento

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

GET_FILE Procedimento e Função

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.

Função LIST_FILES

Essa função faz download de um arquivo do repositório de Código de Nuvem. Opcionalmente, o conteúdo do arquivo pode ser acessado 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.

PUT_FILE Procedimento

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 CLOB para o arquivo do repositório.

DBMS_CLOUD_REPO Operações de Instalação SQL

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

Subprograma Descrição

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.

Procedimento EXPORT_SCHEMA

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

INSTALL_FILE Procedimento

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

INSTALL_SQL Procedimento

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

Resumo de Subprogramas DBMS_CLOUD_REPO

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

Procedimento CREATE_BRANCH

Esse procedimento cria uma ramificação no Cloud Code Repository identificado 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 de cabeçalho 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 de 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;
/

Nota 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 só pode ser acessado 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;
/

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

DELETE_REPOSITORY Procedimento

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 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.

Nota de Uso

Para controle personalizado na DDL de objeto, você pode usar DBMS_METADATA.GET_DDL 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 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 para o 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 um script DDL deve ser submetido a upload para a ramificação 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;
/

Nota 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.

GET_FILE Procedimento e Função

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

INIT_AWS_REPO Função

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 CodeCommit da AWS.

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

INIT_AZURE_REPO Função

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

INIT_GITHUB_REPO Função

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

INIT_REPO Função

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 que alterar o código; você só precisa alterar um documento JSON ao mover um repositório de código de um repositório 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 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

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

INSTALL_FILE Procedimento

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 Agência para instalar arquivo de uma agência 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 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 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 paramétricos.
    • 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 são suportadas 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;
/

INSTALL_SQL Procedimento

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ção
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 de 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 paramétricos.
    • 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 são suportadas 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 de 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 que começam no 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 de 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. Opcionalmente, o conteúdo do arquivo pode ser acessado 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 de 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. Se o handle repo tiver um nome de repositório especificado, a função não restringirá a listagem ao nome do 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 identificador de repositório. Esse parâmetro é suportado por todos os provedores de nuvem.

Observações de 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 para mesclagem.

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

Nota 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.

PUT_FILE Procedimento

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

UPDATE_REPOSITORY Procedimento

Esse procedimento atualiza um repositório de Código de Nuvem identificado pelo argumento de controle repo. UPDATE_REPOSITORY 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;
/