Ensemble DBMS_CLOUD_REPO

L'ensemble DBMS_CLOUD_REPO permet l'utilisation et la gestion des référentiels de code hébergés en nuage à partir d'Oracle Database. Les référentiels de code en nuage pris en charge incluent GitHub, AWS CodeCommit et Azure.

Aperçu de DBMS_CLOUD_REPO

Le paquetage DBMS_CLOUD_REPO fournit un accès facile aux fichiers des référentiels Cloud Code (Git), notamment : GitHub, AWS CodeCommit et Azure Reposit.

Ce paquetage est une interface unique pour l'accès aux référentiels de code multinuage et vous permet de charger des fichiers SQL dans les référentiels Git ou d'installer des scripts SQL directement à partir des référentiels de code Cloud. Cet ensemble vous permet également d'utiliser un référentiel de code en nuage pour gérer les versions de code des scripts SQL et pour installer ou appliquer des correctifs au code d'application à partir des référentiels Git.

Concepts

  • Système de contrôle de version Git : Git est un logiciel permettant de suivre les modifications dans n'importe quel jeu de fichiers, généralement utilisé pour coordonner le travail entre les programmeurs développant en collaboration du code source lors du développement de logiciels. Ses objectifs comprennent la vitesse, l'intégrité des données et la prise en charge de flux de travail distribués et non linéaires.

  • Référentiel Git : Un référentiel Git est un stockage virtuel de votre projet. Il vous permet d'enregistrer des versions de votre code, auxquelles vous pouvez accéder si nécessaire.

Architecture

L'ensemble DBMS_CLOUD_REPO fournit quatre domaines de fonctions :
  • Initialisation du référentiel avec descripteur de référentiel de code en nuage générique

    • Initialiser un référentiel de code GitHub

    • Initialiser un référentiel de code AWS CodeCommit

    • Initialiser un référentiel de code de référentiel Azure

  • Opérations de gestion de référentiel

    • Créer un référentiel

    • Mettre à jour un référentiel

    • Lister les référentiels

    • Supprimer un référentiel

  • Opérations de gestion de fichiers de référentiel

    • Charger un fichier dans le référentiel de code à partir d'Oracle Database.

    • Téléchargez un fichier du référentiel de code vers Oracle Database.

    • Supprimer des fichiers du référentiel de code.

    • Répertorier les fichiers à partir du référentiel de code.

  • Opérations d'installation SQL

    • Exporter le LDD des métadonnées d'objet de base de données vers le référentiel.
    • Installez les instructions SQL à partir d'un fichier du référentiel de code dans Oracle Database.

    • Installez les instructions SQL à partir d'une mémoire tampon.

DBMS_CLOUD_REPO Structures de données

L'ensemble DBMS_CLOUD_REPO définit des types d'enregistrement et un type d'objet JSON générique repo.

Objet JSON REPO

Un DBMS_CLOUD_REPO REPO est un objet JSON opaque qui représente un référentiel de code en nuage d'un fournisseur de services en nuage spécifique. Un objet REPO peut être transmis à différentes API DBMS_CLOUD_REPO. Cet objet opaque garantit que les procédures et les fonctions DBMS_CLOUD_REPO sont compatibles avec plusieurs nuages; vous n'avez pas à modifier de code lorsque vous migrez d'un fournisseur de référentiel de code en nuage vers un autre référentiel de code en nuage.

DBMS_CLOUD_REPO Groupes de sous-programmes

Les sous-programmes d'ensemble DBMS_CLOUD_REPO peuvent être regroupés en quatre catégories : opérations d'initialisation, opérations de gestion de référentiel, opérations de fichier et opérations d'installation SQL.

Opérations d'initialisation DBMS_CLOUD_REPO

Répertorie les sous-programmes pour les opérations d'initialisation dans l'ensemble DBMS_CLOUD_REPO.

Sous-programme Description

Fonction INIT_AWS_REPO

Cette fonction initialise un descripteur de référentiel AWS et renvoie un type opaque.

Fonction INIT_AZURE_REPO

Cette fonction initialise un descripteur de référentiel Azure et retourne un type opaque.

Fonction INIT_GITHUB_REPO

Cette fonction initialise un descripteur de référentiel GitHub et retourne un type opaque.

Fonction INIT_REPO

Cette fonction initialise un descripteur Cloud Code Repository et retourne un objet JSON opaque.

DBMS_CLOUD_REPO Opérations de gestion de référentiel

Affiche les sous-programmes pour les opérations de gestion de référentiel dans l'ensemble DBMS_CLOUD_REPO.

Sous-programme Description

CREATE_REPOSITORY Procédure

Cette procédure crée un référentiel de code en nuage identifié par l'argument handle repo.

DELETE_REPOSITORY Procédure

Cette procédure supprime le référentiel de code en nuage identifié par l'argument handle repo.

Fonction LIST_REPOSITORIES

Cette fonction liste tous les référentiels de code en nuage identifiés par l'argument handle repo.

UPDATE_REPOSITORY Procédure

Cette procédure met à jour un référentiel Cloud Code identifié par l'argument handle repo. La procédure prend en charge la mise à jour du nom, de la description ou du statut de visibilité privée, tel que pris en charge par le référentiel Cloud Code.

DBMS_CLOUD_REPO Opérations de gestion de succursale de référentiel

Répertorie les sous-programmes pour les opérations de gestion de branche de référentiel dans l'ensemble DBMS_CLOUD_REPO.

Sous-programme Description

CREATE_BRANCH Procédure

Cette procédure crée une branche dans un référentiel de code en nuage identifié par l'argument handle repo.

DELETE_BRANCH Procédure

Cette procédure supprime une branche dans un référentiel de code en nuage identifié par l'argument handle repo.

Fonction LIST_BRANCHES

Cette fonction liste toutes les branches du référentiel de code en nuage identifiées par l'argument handle repo.

Fonction LIST_COMMITS

Cette fonction liste toutes les validations d'une branche du référentiel de code en nuage identifiée par l'argument handle repo.

MERGE_BRANCH Procédure

Cette procédure fusionne une branche du référentiel de code en nuage dans une autre branche spécifiée dans un référentiel de code en nuage identifié par l'argument handle repo.

Opérations de fichier DBMS_CLOUD_REPO

Répertorie les sous-programmes pour les opérations de fichier dans l'ensemble DBMS_CLOUD_REPO.

Sous-programme Description

Procédure DELETE_FILE

Cette procédure supprime un fichier du référentiel Cloud Code identifié par l'argument handle repo.

GET_FILE Procédure et fonction

La fonction télécharge le contenu d'un fichier à partir du référentiel Cloud Code. La procédure vous permet de télécharger le contenu d'un fichier à partir du référentiel Cloud Code et d'enregistrer le fichier dans un répertoire.

Fonction LIST_FILES

Cette fonction télécharge un fichier à partir du référentiel Cloud Code. Facultativement, vous pouvez accéder au contenu du fichier à partir d'une branche, d'une balise ou d'un nom de validation spécifique. Par défaut, le fichier est accessible à partir de la branche de référentiel par défaut.

PUT_FILE Procédure

Cette procédure charge un fichier dans le référentiel Cloud Code identifié par l'argument handle repo. La procédure est surchargée pour prendre en charge le chargement d'un fichier à partir d'un objet répertoire ou le chargement du contenu d'un objet CLOB vers le fichier de référentiel.

DBMS_CLOUD_REPO Opérations d'installation SQL

Répertorie les sous-programmes pour les opérations d'installation SQL dans l'ensemble DBMS_CLOUD_REPO.

Sous-programme Description

EXPORT_OBJECT Procédure

Cette procédure charge les métadonnées LDD d'un objet de base de données dans le référentiel Cloud Code identifié par l'argument de descripteur repo.

EXPORT_SCHEMA Procédure

Cette procédure exporte les métadonnées de tous les objets d'un schéma vers une branche du référentiel de code en nuage identifiée par l'argument handle repo.

INSTALL_FILE Procédure

Cette procédure installe les énoncés SQL à partir d'un fichier dans le référentiel Cloud Code identifié par l'argument handle repo.

INSTALL_SQL Procédure

Cette procédure installe les instructions SQL à partir d'une mémoire tampon fournie en entrée.

Sommaire des sous-programmes DBMS_CLOUD_REPO

Cette section décrit les sous-programmes DBMS_CLOUD_REPO fournis avec Autonomous AI Database.

CREATE_BRANCH Procédure

Cette procédure crée une branche dans le référentiel de code en nuage identifiée par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo

Indique l'indicateur du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

branch_name

Indique le nom de la branche du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

parent_branch_name

Crée la nouvelle branche à l'aide de la validation de tête de la branche parent spécifiée.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Si vous n'indiquez pas de valeur parent_branch_name, parent_branch_name est réglé à main.

parent_commit_id

Crée la nouvelle branche à l'aide de la validation de référentiel indiquée.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Si vous ne fournissez pas de valeur parent_commit_id, parent_commit_id est réglé à une valeur NULL.

Exemple

Note

Pour créer une branche dans un référentiel Cloud Code, vous devez spécifier la branche parent ou l'ID validation parent.
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

Note d'utilisation

Pour exécuter la procédure DBMS_CLOUD_REPO.CREATE_BRANCH, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_REPO.

CREATE_REPOSITORY Procédure

Cette procédure crée un référentiel de code en nuage identifié par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

description Description abrégée du référentiel.

Ce paramètre est pris en charge pour le fournisseur de nuage GITHUB et AWS.

private

Le référentiel est privé et accessible uniquement avec des données d'identification valides

Ce paramètre n'est pris en charge que pour le fournisseur de nuage GITHUB.

Exemple

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

DELETE_BRANCH Procédure

Cette procédure supprime une branche du référentiel Cloud Code identifiée par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

branch_name Supprimer une branche d'un référentiel spécifique.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

Exemple

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

Note d'utilisation

Pour exécuter la procédure DBMS_CLOUD_REPO.DELETE_BRANCH, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_REPO.

Procédure DELETE_FILE

Cette procédure supprime un fichier du référentiel Cloud Code identifié par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.
file_path Chemin d'accès au fichier pour supprimer le fichier dans le référentiel.
branch_name Supprimer le fichier d'une branche spécifique.
commit_details

Valider les détails en tant que document JSON

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

Exemple

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

DELETE_REPOSITORY Procédure

Cette procédure supprime le référentiel de code en nuage identifié par l'argument handle repo.

Syntaxe

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.

Exemple

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

EXPORT_OBJECT Procédure

Cette procédure charge les métadonnées LDD d'un objet de base de données dans le référentiel Cloud Code identifié par l'argument de descripteur repo. Cette procédure permet de charger facilement la définition des métadonnées d'un objet de base de données en une seule étape.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.
file_path Chemin d'accès au fichier pour charger les métadonnées d'objet dans le référentiel.
object_type

Type d'objet pris en charge par DBMS_METADATA. Voir DBMS_METADATA : Table des types d'objet pour plus de détails.

object_name Nom de l'objet de base de données pour l'extraction des métadonnées.
object_schema Schéma propriétaire de l'objet de base de données.
branch_name Placez le fichier dans une branche spécifique.
commit_details

Détails de validation en tant que document JSON :{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

append Ajoutez le LDD des métadonnées au fichier existant.

Note d'utilisation

Pour un contrôle personnalisé sur le LDD de l'objet, vous pouvez utiliser DBMS_METADATA.GET_DDL avec DBMS_CLOUD_REPO.PUT_FILE. Pour obtenir la définition des métadonnées de l'objet, l'utilisateur courant doit disposer des privilèges nécessaires pour extraire les métadonnées de l'objet. Voir DBMS_METADATA pour les exigences de sécurité de l'ensemble.

Exemple

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

EXPORT_SCHEMA Procédure

Cette procédure exporte les métadonnées de tous les objets d'un schéma vers la branche Cloud Code Repository identifiée par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo

Indique l'indicateur du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

file_path

Spécifie le nom du fichier de schéma à charger dans le référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

schema_name

Spécifie le nom du schéma pour lequel un script LDD doit être chargé dans la branche Cloud Code Repository.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

filter_list

Spécifie l'objet CLOB du tableau JSON qui définit les conditions de filtre pour inclure ou exclure les objets dont les métadonnées doivent être exportées.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Les paramètres JSON pour filter_list sont les suivants :
  • match_type : Spécifie le type de filtre à appliquer aux types d'objet ou aux noms d'objet.

    Les valeurs match_type valides sont les suivantes :
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type : Spécifie le type d'objet à filtrer.

  • name : Spécifie le nom de l'objet à filtrer.

branch_name

Indique le nom de la branche du référentiel.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Si vous ne fournissez pas de valeur branch_name, branch_name est réglé à la branche de référentiel par défaut.

commit_details

Valider les détails en tant que document JSON

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

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Si vous n'indiquez pas de valeur commit_details, commit_details est réglé au message de validation par défaut qui inclut les informations sur l'utilisateur de la session de base de données courante et le nom de la base de données effectuant la validation.

Exemple

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

Note d'utilisation

Pour exécuter la procédure DBMS_CLOUD_REPO.EXPORT_SCHEMA, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_REPO.

GET_FILE Procédure et fonction

La fonction télécharge le contenu d'un fichier à partir du référentiel Cloud Code. La procédure vous permet de télécharger le contenu d'un fichier à partir du référentiel Cloud Code et d'enregistrer le fichier dans un répertoire.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.
file_path Chemin d'accès au fichier dans le référentiel.
directory_name Nom d'objet de répertoire pour enregistrer le contenu du fichier.
target_file_name Nom du fichier cible pour enregistrer le contenu dans le répertoire.
branch_name Obtenir le fichier à partir d'une branche spécifique.
tag_name Obtenir le fichier à partir d'une balise spécifique.
commit_name Obtenir le fichier à partir d'une validation spécifique.

Exemple

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

Fonction INIT_AWS_REPO

Cette fonction initialise un descripteur de référentiel AWS et renvoie un type opaque.

Syntaxe

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

Paramètres

Paramètre Description
credential_name

Objet de données d'identification spécifiant la clé d'accès/clé secrète AWS CodeCommit.

repo_name Indique le nom du référentiel.
region Spécifie la région AWS pour le référentiel CodeCommit.

Exemple

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

Fonction INIT_AZURE_REPO

Cette fonction initialise un descripteur de référentiel Azure et retourne un type opaque. Cette fonction n'est prise en charge que pour le fournisseur de nuage Azure.

Syntaxe

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

Paramètres

Paramètre Description
credential_name

Objet de données d'identification spécifiant Azure, avec un nom d'utilisateur et un jeton d'accès personnel (PAT).

repo_name Indique le nom du référentiel.
organization Spécifie l'organisation Azure DevOps.
project Nom du projet de l'équipe Azure.

Exemple

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

Fonction INIT_GITHUB_REPO

Cette fonction initialise un descripteur de référentiel GitHub et retourne un type opaque.

Syntaxe

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

Paramètres

Paramètre Description
credential_name

Objet de données d'identification spécifiant GitHub.

Courriel de l'utilisateur et jeton d'accès personnel (PAT).

repo_name Indique le nom du référentiel.
owner Indique le responsable du référentiel.

Exemple

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

Fonction INIT_REPO

Cette fonction initialise un descripteur Cloud Code Repository et retourne un objet JSON opaque. Cette fonction est une interface générique permettant d'accepter un document JSON, et évite d'avoir à modifier le code, vous n'avez qu'à modifier un document JSON, lors du déplacement d'un référentiel de code d'un référentiel Cloud Code vers un autre référentiel Cloud Code.

Syntaxe

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

Paramètres

Paramètre JSON Description
provider

Fournisseur de référentiel de code en nuage à partir des éléments suivants :

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name Indique le nom du référentiel. DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner Responsable du référentiel GitHub. DBMS_CLOUD_REPO.PARAM_OWNER

Ce paramètre s'applique uniquement au fournisseur de services infonuagiques GitHub.

region Région du référentiel AWS DBMS_CLOUD_REPO_PARAM_REGION

Ce paramètre s'applique uniquement au fournisseur de nuage AWS.

organization Organisation Azure DBMS_CLOUD_REPO_PARAM_ORGANIZATION

Ce paramètre s'applique uniquement au fournisseur de nuage Azure.

project Projet d'équipe Azure DBMS_CLOUD_REPO_PARAM_PROJECT

Ce paramètre s'applique uniquement au fournisseur de nuage Azure

Exemple

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 Procédure

Cette procédure installe les énoncés SQL à partir d'un fichier dans le référentiel Cloud Code identifié par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.
file_path Chemin d'accès au fichier dans le référentiel.
branch_name Branche pour installer le fichier à partir d'une branche spécifique.
tag_name Balise pour installer le fichier à partir d'une balise spécifique.
commit_name ID validation pour installer le fichier à partir d'une validation spécifique.
stop_on_error Arrêtez d'exécuter les instructions SQL lors de la première erreur.

Notes d'utilisation

  • Vous pouvez installer des énoncés SQL contenant du code SQL imbriqué à partir d'un fichier de référentiel Cloud Code à l'aide des éléments suivants :

    • @ : Inclut un fichier SQL avec un chemin relatif vers la racine du référentiel.

    • @@ : Inclut un fichier SQL avec un chemin relatif au fichier courant.

  • Les scripts sont conçus en tant que scripts d'installation de schéma et non en tant que scripts SQL génériques :

    • Les scripts ne peuvent pas contenir de commandes propres au client SQL*Plus.
    • Les scripts ne peuvent pas contenir de variables de liaison ou de scripts paramétrés.
    • Les instructions SQL doivent se terminer par une barre oblique sur une nouvelle ligne (/).
    • Les scripts peuvent contenir des énoncés LDD et PLSQL LMD, mais les énoncés SELECT directs ne sont pas pris en charge. L'utilisation de SELECT dans un bloc PL/SQL est prise en charge.

    Tout énoncé SQL pouvant être exécuté à l'aide de EXECUTE IMMEDIATE fonctionnera s'il ne contient pas de variables de liaison ou de définitions.

Exemple

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

INSTALL_SQL Procédure

Cette procédure installe les instructions SQL à partir d'une mémoire tampon fournie en entrée.

Syntaxe

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

Paramètres

Paramètre Descriptions
content CLOB contenant les instructions SQL à exécuter.
stop_on_error Arrêtez d'exécuter les instructions SQL lors de la première erreur.

Notes d'utilisation

  • Les scripts sont conçus en tant que scripts d'installation de schéma et non en tant que scripts SQL génériques :

    • Les scripts ne peuvent pas contenir de commandes propres au client SQL*Plus.
    • Les scripts ne peuvent pas contenir de variables de liaison ou de scripts paramétrés.
    • Les instructions SQL doivent se terminer par une barre oblique sur une nouvelle ligne (/).
    • Les scripts peuvent contenir des énoncés LDD et PLSQL LMD, mais les énoncés SELECT directs ne sont pas pris en charge. L'utilisation de SELECT dans un bloc PL/SQL est prise en charge.

    Tout énoncé SQL pouvant être exécuté à l'aide de EXECUTE IMMEDIATE fonctionnera s'il ne contient pas de variables de liaison ou de définitions.

Exemple

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

Fonction LIST_BRANCHES

Cette fonction liste les branches de la branche du référentiel de code en nuage identifiées par l'argument handle repo.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

Exemple

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

Notes d'utilisation

  • Il s'agit d'une fonction de table pipelinée dont le type de retour est list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES retourne la colonne : name, qui indique le nom de la branche du référentiel de code en nuage.

Fonction LIST_COMMITS

Cette fonction liste les validations dans la branche du référentiel de code en nuage identifiée par l'argument handle repo.

Syntaxe

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;

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

branch_name Liste des validations à partir d'une branche spécifique.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Si vous n'indiquez pas de valeur branch_name, branch_name est réglé à main.

file_path Répertoriez les fichiers sous le chemin de sous-dossier spécifié dans le référentiel.

Ce paramètre n'est pris en charge que pour les fournisseurs de nuage Git et Azure.

Si vous ne fournissez pas de valeur file_path, file_path est réglé à une valeur NULL.

commit_id Lister les fichiers à partir de sha/id spécifié

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

Si vous ne fournissez pas de valeur commit_id, commit_id est réglé à une valeur NULL.

Exemple

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

Exemple

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

Notes d'utilisation

  • Il s'agit d'une fonction de table pipelinée dont le type de retour est list_commit_ret_tab.

  • DBMS_CLOUD_REPO.LIST_COMMITS retourne la colonne : commit_id.

Fonction LIST_FILES

Cette fonction télécharge un fichier à partir du référentiel Cloud Code. Facultativement, vous pouvez accéder au contenu du fichier à partir d'une branche, d'une balise ou d'un nom de validation spécifique. Par défaut, le fichier est accessible à partir de la branche de référentiel par défaut. Les résultats comprennent les noms des fichiers et des métadonnées supplémentaires sur ceux-ci.

Syntaxe

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;

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.
path Répertoriez les fichiers sous le chemin de sous-dossier spécifié dans le référentiel.
branch_name Répertorier les fichiers d'une branche spécifique.
tag_name Répertorier les fichiers à partir d'une balise spécifique.
commit_name Répertorier les fichiers à partir d'une validation spécifique.

Notes d'utilisation

  • Il s'agit d'une fonction de table pipelinée dont le type de retour est list_file_ret_tab.

  • DBMS_CLOUD_REPO.LIST_FILES retourne les colonnes : id, name, url et bytes.

Exemple

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

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

Fonction LIST_REPOSITORIES

Cette fonction liste tous les référentiels de code en nuage identifiés par l'argument de descripteur repo. Si le descripteur repo a un nom de référentiel spécifié, la fonction ne limite pas la liste au nom de référentiel spécifié; elle répertorie tous les référentiels accessibles à l'utilisateur.

Syntaxe

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

Paramètres

Paramètre Description
repo

Indique l'indicateur du référentiel. Ce paramètre est pris en charge par tous les fournisseurs de nuage.

Notes d'utilisation

  • Il s'agit d'une fonction de table pipelinée dont le type de retour est list_repo_ret_tab.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES retourne les colonnes : id, name, owner, description, private, url, bytes, created et last_modified.

Exemple

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

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

MERGE_BRANCH Procédure

Cette procédure fusionne une branche de référentiel dans une autre branche spécifiée dans le référentiel de code en nuage identifié par l'argument handle repo. La procédure MERGE_BRANCH n'est pas prise en charge actuellement dans Azure.

Syntaxe

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

Paramètres

Paramètre Description
repo

Indique l'indicateur du référentiel.

Ce paramètre est obligatoire et pris en charge pour les fournisseurs de nuage GITHUB et AWS.

branch_name

Indique le nom de la branche Git à fusionner.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

target_branch_name

Indique le nom de la branche cible dans laquelle effectuer la fusion.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs de services en nuage.

commit_details

Valider les détails en tant que document JSON

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

Si vous ne fournissez pas de valeur commit_details, commit_details est réglé au message de validation par défaut qui inclut les informations sur l'utilisateur de la session de base de données courante et le nom de la base de données effectuant la validation.

Exemple

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

Note d'utilisation

Pour exécuter la procédure DBMS_CLOUD_REPO.MERGE_BRANCH, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_REPO.

PUT_FILE Procédure

Cette procédure charge un fichier dans le référentiel Cloud Code identifié par l'argument handle repo. La procédure est surchargée pour prendre en charge le chargement d'un fichier à partir d'un objet répertoire ou le chargement du contenu d'un objet BLOB vers le fichier de référentiel.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.
file_path Chemin d'accès au fichier à charger dans le référentiel.
contents BLOB contenant le contenu du fichier.
directory_name Nom de l'objet de répertoire contenant le nom du fichier.
source_file_name Nom du fichier source à charger dans le référentiel.
branch_name Placez le fichier dans une branche spécifique.
commit_details

Détails de validation en tant que document JSON :

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

Exemple

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

UPDATE_REPOSITORY Procédure

Cette procédure met à jour un référentiel Cloud Code identifié par l'argument handle repo. UPDATE_REPOSITORY prend en charge la mise à jour du nom, de la description ou du statut de visibilité privée, comme pris en charge par le référentiel Cloud Code.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique l'indicateur du référentiel.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

new_name Nouveau nom pour le référentiel.

Ce paramètre est pris en charge pour tous les fournisseurs de nuage.

description Description abrégée du référentiel.

Ce paramètre est pris en charge pour les fournisseurs de cloud GITHUB et AWS.

private

Le référentiel est privé et accessible uniquement avec des données d'identification valides.

Ce paramètre est pris en charge pour le fournisseur de nuage GITHUB.

Exemple

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