Paquete DBMS_CLOUD_REPO

El paquete DBMS_CLOUD_REPO proporciona el uso y la gestión de repositorios de código alojados en la nube de Oracle Database. Los repositorios de código en la nube soportados incluyen GitHub, AWS CodeCommit y Azure Repos.

Visión general de DBMS_CLOUD_REPO

El paquete DBMS_CLOUD_REPO proporciona un acceso sencillo a los archivos de los repositorios de Cloud Code (Git), incluidos: GitHub, AWS CodeCommit y Azure Repos.

Este paquete es una única interfaz para acceder a repositorios de código multinube y permite cargar archivos SQL en repositorios de Git o instalar scripts SQL directamente desde repositorios de Cloud Code. Este paquete también permite utilizar un repositorio de Cloud Code para gestionar versiones de código para scripts SQL e instalar o aplicar parches al código de aplicación desde repositorios de Git.

Conceptos

  • Sistema de control de versiones de Git: Git es software para realizar un seguimiento de los cambios en cualquier conjunto de archivos, que se suele utilizar para coordinar el trabajo entre programadores que desarrollan en colaboración código fuente durante el desarrollo de software. Sus objetivos incluyen velocidad, integridad de datos y soporte para flujos de trabajo distribuidos y no lineales.

  • Repositorio de Git: un repositorio de Git es un almacenamiento virtual del proyecto. Le permite guardar versiones de su código, a las que podrá acceder cuando sea necesario.

Arquitectura

El paquete DBMS_CLOUD_REPO proporciona cuatro áreas de funciones:
  • Inicialización de repositorio con identificador genérico de repositorio de código en la nube

    • Inicialización de un repositorio de código GitHub

    • Inicialización de un repositorio de código CodeCommit de AWS

    • Inicializar un repositorio de código de Azure Repos

  • Operaciones de gestión de repositorios

    • Cree un repositorio

    • Actualice un repositorio

    • Mostrar repositorios

    • Suprima un repositorio

  • Operaciones de gestión de archivos del repositorio

    • Cargar un archivo en el repositorio de código desde Oracle Database.

    • Descargar un archivo del repositorio de Code en Oracle Database.

    • Suprimir archivos del repositorio de Code.

    • Mostrar archivos del repositorio de Code.

  • Operaciones de instalación de SQL

    • Exportar DDL de metadatos de objeto de base de datos al repositorio.
    • Instalar sentencias SQL desde un archivo del repositorio de Code Repository de Oracle Database.

    • Instalar sentencias SQL desde un buffer.

DBMS_CLOUD_REPO Estructuras de datos

El paquete DBMS_CLOUD_REPO define tipos de registro y un tipo de objeto JSON genérico repo.

Objeto JSON de REPO

Un DBMS_CLOUD_REPO REPO es un objeto JSON opaco que representa un repositorio de Cloud Code de un proveedor en la nube específico. Un objeto REPO se puede transferir a diferentes API de DBMS_CLOUD_REPO. Este objeto opaco garantiza que los procedimientos y las funciones de DBMS_CLOUD_REPO sean compatibles con varias nubes; no tiene que cambiar ningún código al migrar de un proveedor de repositorio de Cloud Code a otro repositorio de Cloud Code.

DBMS_CLOUD_REPO Grupos de subprogramas

Los subprogramas del paquete DBMS_CLOUD_REPO se pueden agrupar en cuatro categorías: operaciones de inicialización, operaciones de gestión de repositorios, operaciones de archivo y operaciones de instalación de SQL.

DBMS_CLOUD_REPO Operaciones de inicialización

Muestra los subprogramas para las operaciones de inicialización en el paquete DBMS_CLOUD_REPO.

Subprograma Descripción

Función INIT_AWS_REPO

Esta función inicializa un manejador de repositorio de AWS y devuelve un tipo opaco.

Función INIT_AZURE_REPO

Esta función inicializa un manejador de repositorio de Azure y devuelve un tipo opaco.

Función INIT_GITHUB_REPO

Esta función inicializa un manejador de repositorio GitHub y devuelve un tipo opaco.

Función INIT_REPO

Esta función inicializa un manejador del repositorio de Cloud Code y devuelve un objeto JSON opaco.

DBMS_CLOUD_REPO Operaciones de gestión de repositorios

Muestra los subprogramas para operaciones de gestión de repositorios en el paquete DBMS_CLOUD_REPO.

Subprograma Descripción

CREATE_REPOSITORY Procedimiento

Con este procedimiento se crea un repositorio de Cloud Code identificado por el argumento del manejador repo.

Procedimiento DELETE_REPOSITORY

Con este procedimiento se suprime el repositorio de Cloud Code identificado por el argumento del manejador repo.

Función LIST_REPOSITORIES

Esta función muestra todos los repositorios de Cloud Code identificados por el argumento de identificador repo.

Procedimiento UPDATE_REPOSITORY

Con este procedimiento se actualiza un repositorio de Cloud Code identificado por el argumento de manejador repo. El procedimiento soporta la actualización del nombre, la descripción o el estado de visibilidad privado, como soporta el repositorio de Cloud Code.

DBMS_CLOUD_REPO Operaciones de gestión de sucursales de repositorio

Muestra los subprogramas para las operaciones de gestión de rama de repositorio en el paquete DBMS_CLOUD_REPO.

Subprograma Descripción

Procedimiento CREATE_BRANCH

Con este procedimiento se crea una rama en un repositorio de Cloud Code identificado por el argumento del manejador repo.

Procedimiento DELETE_BRANCH

Con este procedimiento se suprime una rama de un repositorio de Cloud Code identificada por el argumento del manejador repo.

Función LIST_BRANCHES

Esta función muestra todas las bifurcaciones del repositorio de Cloud Code identificadas por el argumento de identificador repo.

Función LIST_COMMITS

Esta función muestra todas las confirmaciones en una rama del repositorio de Cloud Code identificadas por el argumento de identificador repo.

Procedimiento MERGE_BRANCH

Con este procedimiento se fusiona una rama del repositorio de Cloud Code en otra rama especificada en un repositorio de Cloud Code identificado por el argumento del manejador repo.

DBMS_CLOUD_REPO Operaciones de archivo

Muestra los subprogramas para las operaciones de archivo del paquete DBMS_CLOUD_REPO.

Subprograma Descripción

DELETE_FILE Procedure

Con este procedimiento se suprime un archivo del repositorio de Cloud Code identificado por el argumento del manejador repo.

GET_FILE Procedimiento y función

La función descarga el contenido de un archivo del repositorio de Cloud Code. El procedimiento permite descargar el contenido de un archivo del repositorio de Cloud Code y guardar el archivo en un directorio.

LIST_FILES Function

Con esta función se descarga un archivo del repositorio de Cloud Code. Si lo desea, se puede acceder al contenido del archivo desde una rama, una etiqueta o un nombre de confirmación específicos. El acceso al archivo se realiza por defecto desde la rama del repositorio por defecto.

PUT_FILE Procedimiento

Con este procedimiento se carga un archivo en el repositorio de Cloud Code identificado por el argumento de manejador repo. El procedimiento está sobrecargado para soportar la carga de un archivo desde un objeto de directorio o la carga del contenido desde un CLOB al archivo de repositorio.

DBMS_CLOUD_REPO Operaciones de instalación de SQL

Muestra los subprogramas para las operaciones de instalación SQL en el paquete DBMS_CLOUD_REPO.

Subprograma Descripción

Procedimiento EXPORT_OBJECT

Con este procedimiento se pueden cargar los metadatos DDL de un objeto de base de datos en el repositorio de Cloud Code identificado por el argumento del manejador repo.

Procedimiento EXPORT_SCHEMA

Este procedimiento exporta metadatos de todos los objetos de un esquema a una rama del repositorio de Cloud Code identificada por el argumento de manejador repo.

INSTALL_FILE Procedimiento

Con este procedimiento se instalan sentencias SQL desde un archivo del repositorio de Cloud Code identificado por el argumento del manejador repo.

INSTALL_SQL Procedimiento

Con este procedimiento se instalan sentencias SQL desde un buffer proporcionado como entrada.

Resumen de DBMS_CLOUD_REPO Subprogramas

En esta sección se tratan los subprogramas DBMS_CLOUD_REPO que proporciona Autonomous Database.

Procedimiento CREATE_BRANCH

Con este procedimiento se crea una rama en el repositorio de Cloud Code identificada por el argumento del manejador repo.

Sintaxis

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 Descripción
repo

Especifica el identificador del repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

branch_name

Especifica el nombre de la rama del repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

parent_branch_name

Crea la nueva rama mediante la confirmación de cabecera de la rama principal especificada.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Si no proporciona un valor parent_branch_name, parent_branch_name se define en main.

parent_commit_id

Crea la nueva rama con la confirmación de repositorio especificada.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Si no proporciona un valor parent_commit_id, parent_commit_id se define en un valor NULL.

Ejemplo

Nota

Para crear una rama en un repositorio de Cloud Code, debe especificar la rama principal o el ID de confirmación principal.
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

Nota de Uso

Para ejecutar el procedimiento DBMS_CLOUD_REPO.CREATE_BRANCH, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_REPO.

CREATE_REPOSITORY Procedimiento

Con este procedimiento se crea un repositorio de Cloud Code identificado por el argumento del manejador repo.

Sintaxis

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

Parámetros

parámetro Descripción
repo Especifica el identificador del repositorio.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

description Descripción de texto breve del repositorio.

Este parámetro está soportado para los proveedores de servicios en la nube de GITHUB y AWS.

private

El repositorio es privado y solo se puede acceder a él con credenciales válidas

Este parámetro solo está soportado para el proveedor de servicios en la nube de GITHUB.

Ejemplo

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

Procedimiento DELETE_BRANCH

Con este procedimiento se suprime una rama del repositorio de Cloud Code identificada por el argumento del manejador repo.

Sintaxis

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

Parámetros

parámetro Descripción
repo Especifica el identificador del repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

branch_name Suprime la rama de un repositorio específico.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

Ejemplo

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

Nota de Uso

Para ejecutar el procedimiento DBMS_CLOUD_REPO.DELETE_BRANCH, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_REPO.

Procedimiento DELETE_FILE

Con este procedimiento se suprime un archivo del repositorio de Cloud Code identificado por el argumento del manejador repo.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.
file_path Ruta al archivo para suprimirlo en el repositorio.
branch_name Supresión del archivo de una rama específica.
commit_details

Detalles de confirmación como documento JSON

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

Ejemplo

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

Procedimiento DELETE_REPOSITORY

Con este procedimiento se suprime el repositorio de Cloud Code identificado por el argumento del manejador repo.

Sintaxis

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Parámetros

parámetro Descripción
repo Especifica el identificador del repositorio.

Ejemplo

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

Procedimiento EXPORT_OBJECT

Con este procedimiento se pueden cargar los metadatos DDL de un objeto de base de datos en el repositorio de Cloud Code identificado por el argumento del manejador repo. Este procedimiento es un método sencillo para cargar la definición de metadatos de un objeto de base de datos en un solo paso.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.
file_path Ruta al archivo para cargar metadatos de objeto en el repositorio.
object_type

Tipo de objeto soportado por DBMS_METADATA. Consulte DBMS_METADATA: tabla Tipos de objeto para obtener más información.

object_name Nombre del objeto de base de datos para recuperar metadatos.
object_schema Esquema propietario del objeto de base de datos.
branch_name Coloque el archivo en una rama específica.
commit_details

Detalles de confirmación como documento JSON:{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

append Agregue el DDL de metadatos al archivo existente.

Nota de Uso

Para un control personalizado en el DDL de objeto, puede utilizar DBMS_METADATA.GET_DDL junto con DBMS_CLOUD_REPO.PUT_FILE. Para obtener la definición de metadatos del objeto, el usuario actual debe tener privilegios para recuperar los metadatos del objeto. Consulte DBMS_METADATA para obtener información sobre los requisitos de seguridad del paquete.

Ejemplo

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

Procedimiento EXPORT_SCHEMA

Este procedimiento exporta metadatos de todos los objetos de un esquema a la rama del repositorio de Cloud Code identificada por el argumento de manejador repo.

Sintaxis

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 Descripción
repo

Especifica el identificador del repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

file_path

Especifica el nombre del archivo de esquema que se va a cargar en el repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

schema_name

Especifica el nombre del esquema para el que se va a cargar un script DDL en la rama del repositorio de Cloud Code.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

filter_list

Especifica el CLOB de la matriz de JSON que define las condiciones de filtro para incluir o excluir los objetos cuyos metadatos se deben exportar.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Los parámetros de JSON para filter_list son:
  • match_type: especifica el tipo de filtro que se va a aplicar a los tipos de objeto o nombres de objeto.

    Los valores match_type válidos son:
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type: especifica el tipo de objeto por el que filtrar.

  • name: especifica el nombre del objeto por el que se va a filtrar.

branch_name

Especifica el nombre de la rama del repositorio.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Si no proporciona un valor branch_name, branch_name se define en la rama de repositorio por defecto.

commit_details

Detalles de confirmación como documento JSON

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

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Si no proporciona un valor commit_details, commit_details se define en el mensaje de confirmación por defecto que incluye la información sobre el usuario de la sesión de base de datos actual y el nombre de la base de datos que realiza la confirmación.

Ejemplo

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 ejecutar el procedimiento DBMS_CLOUD_REPO.EXPORT_SCHEMA, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_REPO.

GET_FILE Procedimiento y función

La función descarga el contenido de un archivo del repositorio de Cloud Code. El procedimiento permite descargar el contenido de un archivo del repositorio de Cloud Code y guardar el archivo en un directorio.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.
file_path Ruta de archivo en el repositorio.
directory_name Nombre de objeto de directorio para guardar el contenido del archivo.
target_file_name Nombre del archivo de destino para guardar el contenido en el directorio.
branch_name Permite obtener el archivo de una rama específica.
tag_name Permite obtener el archivo de una etiqueta específica.
commit_name Permite obtener el archivo de una confirmación específica.

Ejemplo

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

Función INIT_AWS_REPO

Esta función inicializa un manejador de repositorio de AWS y devuelve un tipo opaco.

Sintaxis

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

Parámetros

parámetro Descripción
credential_name

Objeto de credencial que especifica la clave de acceso/clave secreta de AWS CodeCommit.

repo_name Especifica el nombre del repositorio.
region Especifica la región de AWS para el repositorio CodeCommit.

Ejemplo

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

Función INIT_AZURE_REPO

Esta función inicializa un manejador de repositorio de Azure y devuelve un tipo opaco. Esta función solo está soportada para el proveedor en la nube de Azure.

Sintaxis

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 Descripción
credential_name

Objeto de credencial que especifica Azure, con un nombre de usuario y un token de acceso personal (PAT).

repo_name Especifica el nombre del repositorio.
organization Especifica la organización DevOps de Azure.
project Nombre de proyecto de equipo de Azure.

Ejemplo

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

Función INIT_GITHUB_REPO

Esta función inicializa un manejador de repositorio GitHub y devuelve un tipo opaco.

Sintaxis

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 Descripción
credential_name

Objeto de credencial que especifica GitHub.

Correo electrónico de usuario y token de acceso personal (PAT).

repo_name Especifica el nombre del repositorio.
owner Especifica el propietario del repositorio.

Ejemplo

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

Función INIT_REPO

Esta función inicializa un manejador del repositorio de Cloud Code y devuelve un objeto JSON opaco. Esta función es una interfaz genérica para aceptar un documento JSON y evita tener que cambiar el código. Solo tiene que cambiar un documento de JSON al mover un repositorio de código de un repositorio de Cloud Code a otro repositorio de Cloud Code.

Sintaxis

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

Parámetros

Parámetro de JSON Descripción
provider

Proveedor de repositorio de Cloud Code de lo siguiente:

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name Especifica el nombre del repositorio. DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner GitHub Propietario del repositorio. DBMS_CLOUD_REPO.PARAM_OWNER

Este parámetro solo se aplica al proveedor de nube GitHub.

region Región del repositorio de AWS DBMS_CLOUD_REPO_PARAM_REGION

Este parámetro solo se aplica al proveedor de AWS en la nube.

organization Organización de Azure DBMS_CLOUD_REPO_PARAM_ORGANIZATION

Este parámetro solo se aplica al proveedor en la nube de Azure.

project Proyecto del equipo de Azure DBMS_CLOUD_REPO_PARAM_PROJECT

Este parámetro solo se aplica al proveedor en la nube de Azure

Ejemplo

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 Procedimiento

Con este procedimiento se instalan sentencias SQL desde un archivo del repositorio de Cloud Code identificado por el argumento del manejador repo.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.
file_path Ruta de archivo en el repositorio.
branch_name Rama para instalar el archivo desde una rama específica.
tag_name Etiqueta para instalar el archivo desde una etiqueta específica.
commit_name ID de confirmación para instalar el archivo desde una confirmación específica.
stop_on_error Deja de ejecutar las sentencias SQL cuando se produce el primer error.

Notas de Uso

  • Puede instalar sentencias SQL que contengan SQL anidado desde un archivo de repositorio de Cloud Code mediante lo siguiente:

    • @: incluye un archivo SQL con una ruta de acceso relativa a la raíz del repositorio.

    • @@: incluye un archivo SQL con una ruta de acceso relativa al archivo actual.

  • Los scripts están diseñados como archivos de comandos de instalación de esquemas y no como archivos de comandos SQL genéricos:

    • Los scripts no pueden contener comandos específicos del cliente SQL*Plus.
    • Los scripts no pueden contener variables de enlace ni scripts con parámetros.
    • Las sentencias SQL deben terminar con una barra inclinada en una nueva línea (/).
    • Los scripts pueden contener sentencias DDL y DML PLSQL, pero las sentencias SELECT directas no están soportadas. Está soportado el uso de SELECT en un bloque PL/SQL.

    Las sentencias SQL que se puedan ejecutar mediante EXECUTE IMMEDIATE funcionarán si no contienen variables de enlace o definiciones.

Ejemplo

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

INSTALL_SQL Procedimiento

Con este procedimiento se instalan sentencias SQL desde un buffer proporcionado como entrada.

Sintaxis

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

Parámetros

parámetro Descripción
content Es el CLOB que contiene las sentencias SQL que se van a ejecutar.
stop_on_error Deja de ejecutar las sentencias SQL cuando se produce el primer error.

Notas de Uso

  • Los scripts están diseñados como archivos de comandos de instalación de esquemas y no como archivos de comandos SQL genéricos:

    • Los scripts no pueden contener comandos específicos del cliente SQL*Plus.
    • Los scripts no pueden contener variables de enlace ni scripts con parámetros.
    • Las sentencias SQL deben terminar con una barra inclinada en una nueva línea (/).
    • Los scripts pueden contener sentencias DDL y DML PLSQL, pero las sentencias SELECT directas no están soportadas. Está soportado el uso de SELECT en un bloque PL/SQL.

    Las sentencias SQL que se puedan ejecutar mediante EXECUTE IMMEDIATE funcionarán si no contienen variables de enlace o definiciones.

Ejemplo

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

Función LIST_BRANCHES

Esta función muestra las bifurcaciones de la rama del repositorio de Cloud Code identificadas por el argumento de identificador repo.

Sintaxis

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

Parámetros

parámetro Descripción
repo Especifica el identificador del repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

Ejemplo

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

Notas de Uso

  • Esta función de tabla con pipeline con el tipo de retorno list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES devuelve la columna: name, que indica el nombre de la rama del repositorio de Cloud Code.

Función LIST_COMMITS

Esta función muestra las confirmaciones en la rama del repositorio de Cloud Code identificadas por el argumento de identificador repo.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

branch_name Muestra las confirmaciones de una sucursal específica.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Si no proporciona un valor branch_name, branch_name se define en main.

file_path Muestra los archivos en la ruta de subcarpeta especificada en el repositorio.

Este parámetro solo está soportado para los proveedores de nube de Git y Azure.

Si no proporciona un valor file_path, file_path se define en un valor NULL.

commit_id Mostrar archivos a partir de sha/id especificado

Este parámetro está soportado para todos los proveedores de servicios en la nube.

Si no proporciona un valor commit_id, commit_id se define en un valor NULL.

Ejemplo

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

Ejemplo

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

Notas de Uso

  • Esta función de tabla con pipeline con un tipo de retorno como list_commit_ret_tab.

  • DBMS_CLOUD_REPO.LIST_COMMITS devuelve la columna: commit_id.

Función LIST_FILES

Con esta función se descarga un archivo del repositorio de Cloud Code. Si lo desea, se puede acceder al contenido del archivo desde una rama, una etiqueta o un nombre de confirmación específicos. El acceso al archivo se realiza por defecto desde la rama del repositorio por defecto. Los resultados incluyen nombres de archivo y metadatos adicionales sobre los archivos.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.
path Muestra los archivos en la ruta de subcarpeta especificada en el repositorio.
branch_name Muestra los archivos de una rama específica.
tag_name Muestra los archivos de una etiqueta específica.
commit_name Muestra los archivos de una confirmación específica.

Notas de Uso

  • Se trata de una función de tabla con pipeline con el tipo de retorno list_file_ret_tab.

  • DBMS_CLOUD_REPO.LIST_FILES muestra las siguientes columnas: id, name, url y bytes.

Ejemplo

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

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

Función LIST_REPOSITORIES

Esta función muestra todos los Repositorios de Cloud Code identificados por el argumento de identificador repo. Si el identificador repo tiene un nombre de repositorio especificado, la función no restringe la lista al nombre de repositorio especificado; muestra todos los repositorios a los que puede acceder el usuario.

Sintaxis

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

Parámetros

parámetro Descripción
repo

Especifica el identificador del repositorio. Todos los proveedores de servicios en la nube soportan este parámetro.

Notas de Uso

  • Esta es una función de tabla con pipeline con el tipo de retorno list_repo_ret_tab.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES devuelve las siguientes columnas: id, name, owner, description, private, url, bytes, created y last_modified.

Ejemplo

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

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

Procedimiento MERGE_BRANCH

Este procedimiento fusiona una rama de repositorio en otra rama especificada en el repositorio de Cloud Code identificado por el argumento de manejador repo. El procedimiento MERGE_BRANCH no está soportado actualmente en Azure.

Sintaxis

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 Descripción
repo

Especifica el identificador del repositorio.

Este parámetro es obligatorio y está soportado para los proveedores de servicios en la nube de GITHUB y AWS.

branch_name

Especifica el nombre de la rama de Git que se va a fusionar.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

target_branch_name

Especifica el nombre de rama de destino en el que se va a fusionar.

Este parámetro es obligatorio y está soportado para todos los proveedores de servicios en la nube.

commit_details

Detalles de confirmación como documento JSON

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

Si no proporciona un valor commit_details, commit_details se define en el mensaje de confirmación por defecto que incluye la información sobre el usuario de la sesión de base de datos actual y el nombre de la base de datos que realiza la confirmación.

Ejemplo

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

Nota de Uso

Para ejecutar el procedimiento DBMS_CLOUD_REPO.MERGE_BRANCH, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_REPO.

PUT_FILE Procedimiento

Con este procedimiento se carga un archivo en el repositorio de Cloud Code identificado por el argumento de manejador repo. El procedimiento está sobrecargado para soportar la carga de un archivo desde un objeto de directorio o la carga del contenido desde un BLOB al archivo de repositorio.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.
file_path Ruta al archivo para cargarlo en el repositorio.
contents BLOB que incluye el contenido del archivo.
directory_name Nombre de objeto de directorio que contiene el nombre de archivo.
source_file_name Nombre del archivo de origen que desea cargar en el repositorio.
branch_name Coloque el archivo en una rama específica.
commit_details

Detalles de confirmación como documento JSON:

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

Ejemplo

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

Procedimiento UPDATE_REPOSITORY

Con este procedimiento se actualiza un repositorio de Cloud Code identificado por el argumento de manejador repo. UPDATE_REPOSITORY soporta la actualización del nombre, la descripción o el estado de visibilidad privado, como soporta el repositorio de Cloud Code.

Sintaxis

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 Descripción
repo Especifica el identificador del repositorio.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

new_name Nuevo nombre del repositorio.

Este parámetro está soportado para todos los proveedores de servicios en la nube.

description Descripción de texto breve del repositorio.

Este parámetro está soportado para los proveedores de servicios en la nube de GITHUB y AWS.

private

El repositorio es privado y solo se puede acceder a él con credenciales válidas.

Este parámetro está soportado para el proveedor de servicios en la nube de GITHUB.

Ejemplo

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