Package DBMS_CLOUD_REPO

Le package DBMS_CLOUD_REPO permet d'utiliser et de gérer des référentiels de code hébergés sur le cloud à partir d'Oracle Database. Les référentiels de code cloud pris en charge sont les suivants : GitHub, AWS CodeCommit et Azure Repos.

Présentation de DBMS_CLOUD_REPO

Le package DBMS_CLOUD_REPO permet d'accéder facilement aux fichiers des référentiels de code cloud (Git), notamment GitHub, AWS CodeCommit et Azure Repos.

Ce package est une interface unique permettant d'accéder aux référentiels de code multicloud et vous permet de télécharger des fichiers SQL vers des dépôts Git ou d'installer des scripts SQL directement à partir de référentiels de code cloud. Ce package vous permet également d'utiliser un référentiel de code cloud afin de gérer les versions de code pour les scripts SQL, et d'installer un code d'application ou d'appliquer des patches à ce code à partir de référentiels Git.

Concepts

  • Système de contrôle des versions Git : Git est un logiciel qui permet de suivre les modifications apportées à un ensemble de fichiers. Il est généralement utilisé pour coordonner le travail des programmeurs qui développent de manière collaborative du code source lors du développement logiciel. Ses objectifs incluent la vitesse, l'intégrité des données et la prise en charge des workflows non linéaires et distribués.

  • Répertoire 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 en cas de besoin.

Architecture

Le package DBMS_CLOUD_REPO fournit quatre types de fonctionnalité :
  • Initialisation de référentiel avec un descripteur de référentiel de code cloud générique

    • Initialisation d'un référentiel de code GitHub

    • Initialisation d'un référentiel de code AWS CodeCommit

    • Initialisation d'un référentiel de code Azure Repos

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

    • Créer un référentiel

    • Mettre à jour un référentiel

    • Liste des référentiels

    • Supprimer un référentiel

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

    • Téléchargement d'un fichier vers un référentiel de code à partir d'Oracle Database

    • Téléchargement d'un fichier à partir d'un référentiel de code vers Oracle Database

    • Suppression de fichiers d'un référentiel de code

    • Etablissement de la liste des fichiers d'un référentiel de code

  • Opérations d'installation SQL

    • Export des métadonnées DDL d'objet de base de données vers un référentiel
    • Installation d'instructions SQL à partir d'un fichier du référentiel de code dans Oracle Database

    • Installation d'instructions SQL à partir d'un tampon

DBMS_CLOUD_REPO Structures de données

Le package DBMS_CLOUD_REPO définit les types d'enregistrement et un type d'objet JSON générique repo.

Objet JSON REPO

DBMS_CLOUD_REPO REPO est un objet JSON opaque qui représente le référentiel de code cloud d'un fournisseur cloud 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 clouds. Il n'est pas nécessaire de modifier le code lors de la migration d'un fournisseur de référentiel de code cloud vers un autre référentiel de code cloud.

DBMS_CLOUD_REPO Groupes de sous-programmes

Les sous-programmes du package 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.

DBMS_CLOUD_REPO Opérations d'initialisation

Répertorie les sous-programmes pour les opérations d'initialisation dans le package 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 renvoie un type opaque.

Fonction INIT_GITHUB_REPO

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

Fonction INIT_REPO

Cette fonction initialise un descripteur de référentiel de code cloud et renvoie un objet JSON opaque.

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

Indique les sous-programmes pour les opérations de gestion de référentiel dans le package DBMS_CLOUD_REPO.

Sous-programme Description

CREATE_REPOSITORY Procédure

Cette procédure crée un référentiel de code cloud identifié par l'argument de descripteur repo.

DELETE_REPOSITORY Procédure

Cette procédure supprime le référentiel de code cloud identifié par l'argument de descripteur repo.

Fonction LIST_REPOSITORIES

Cette fonction répertorie tous les référentiels de code cloud identifiés par l'argument de descripteur repo.

UPDATE_REPOSITORY Procédure

Cette procédure met à jour un référentiel de code cloud identifié par l'argument de descripteur repo. La procédure 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 de code cloud.

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

Répertorie les sous-programmes pour les opérations de gestion de branchement de référentiel dans le package DBMS_CLOUD_REPO.

Sous-programme Description

CREATE_BRANCH Procédure

Cette procédure crée un branchement dans un référentiel de code cloud identifié par l'argument de descripteur repo.

DELETE_BRANCH Procédure

Cette procédure supprime un branchement dans un référentiel de code cloud identifié par l'argument de descripteur repo.

Fonction LIST_BRANCHES

Cette fonction répertorie toutes les branches du référentiel de code cloud identifiées par l'argument de descripteur repo.

Fonction LIST_COMMITS

Cette fonction répertorie toutes les validations dans une branche de référentiel de code cloud identifiée par l'argument de descripteur repo.

MERGE_BRANCH Procédure

Cette procédure fusionne un branchement de référentiel de code cloud dans un autre branchement spécifié dans un référentiel de code cloud identifié par l'argument de descripteur repo.

Opérations de fichier DBMS_CLOUD_REPO

Répertorie les sous-programmes pour les opérations de fichier dans le package DBMS_CLOUD_REPO.

Sous-programme Description

DELETE_FILE Procédure

Cette procédure supprime un fichier du référentiel de code cloud identifié par l'argument de descripteur 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 permet de télécharger le contenu d'un fichier à partir du référentiel de code cloud et d'enregistrer le fichier dans un répertoire.

Fonction LIST_FILES

Cette fonction télécharge un fichier à partir du référentiel de code cloud. Vous pouvez également accéder au contenu d'un fichier à partir d'un branchement, d'une balise ou d'un nom de validation spécifique. Par défaut, le fichier est accessible à partir du branche de référentiel par défaut.

PUT_FILE Procédure

Cette procédure télécharge un fichier vers le référentiel de code cloud identifié par l'argument de descripteur repo. La procédure est surchargée pour prendre en charge le téléchargement d'un fichier à partir d'un objet de répertoire ou le télé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 le package DBMS_CLOUD_REPO.

Sous-programme Description

EXPORT_OBJECT Procédure

Cette procédure télécharge les métadonnées DDL d'un objet de base de données vers le référentiel de code cloud 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 de référentiel de code cloud identifiée par l'argument de descripteur repo.

INSTALL_FILE Procédure

Cette procédure installe des instructions SQL à partir d'un fichier dans le référentiel de code cloud identifié par l'argument de descripteur repo.

INSTALL_SQL Procédure

Cette procédure installe des instructions SQL à partir d'un tampon fourni en tant qu'entrée.

Récapitulatif des sous-programmes DBMS_CLOUD_REPO

Cette section traite des sous-programmes DBMS_CLOUD_REPO fournis avec Autonomous Database.

CREATE_BRANCH Procédure

Cette procédure crée un branchement dans le référentiel de code cloud identifié par l'argument de descripteur 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 le descripteur de référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

branch_name

Indique le nom du branchement du référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

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

Si vous n'indiquez pas de valeur parent_branch_name, parent_branch_name est défini sur main.

parent_commit_id

Crée le nouveau branchement à l'aide de la validation de référentiel indiquée.

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

Si vous n'indiquez pas de valeur parent_commit_id, parent_commit_id est défini sur une valeur NULL.

Exemple

Remarque

Pour créer un branchement dans un référentiel de code cloud, vous devez indiquer le branchement parent ou l'ID de validation parent.
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

Remarque sur l'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 cloud identifié par l'argument de descripteur 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 le descripteur de référentiel.

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

description Texte court de description du référentiel.

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

private

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

Ce paramètre est uniquement pris en charge pour le fournisseur de cloud 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 un branchement dans le référentiel de code cloud identifié par l'argument de descripteur repo.

Syntaxe

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

Paramètres

Paramètre Description
repo Indique le descripteur de référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

branch_name Permet de supprimer le branchement d'un référentiel spécifique.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

Exemple

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

Remarque sur l'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.

DELETE_FILE Procédure

Cette procédure supprime un fichier du référentiel de code cloud identifié par l'argument de descripteur 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 le descripteur de référentiel.
file_path Chemin du fichier pour la suppression du fichier dans le référentiel.
branch_name Permet de supprimer le fichier d'un 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.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 cloud identifié par l'argument de descripteur repo.

Syntaxe

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Paramètres

Paramètre Description
repo Indique le descripteur de référentiel.

Exemple

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

EXPORT_OBJECT Procédure

Cette procédure télécharge les métadonnées DDL d'un objet de base de données vers le référentiel de code cloud identifié par l'argument de descripteur repo. Cette procédure permet de télé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 le descripteur de référentiel.
file_path Chemin du fichier pour le téléchargement des métadonnées d'objet dans le référentiel.
object_type

Type d'objet pris en charge par DBMS_METADATA. Pour plus d'informations, reportez-vous à la table des types d'objet DBMS_METADATA :.

object_name Nom de l'objet de base de données duquel extraire les métadonnées.
object_schema Schéma propriétaire de l'objet de base de données.
branch_name Permet de placer 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 Permet d'ajouter les métadonnées DDL à la fin du fichier existant.

Remarque sur l'utilisation

Pour un contrôle personnalisé sur le DDL d'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 en cours doit disposer des privilèges permettant d'extraire les métadonnées d'objet. Reportez-vous à DBMS_METADATA pour connaître les exigences de sécurité du package.

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 du référentiel de code cloud identifiée par l'argument de descripteur 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 le descripteur de référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

file_path

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

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

schema_name

Spécifie le nom du schéma pour lequel un script DDL doit être téléchargé vers la branche du référentiel de code cloud.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

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

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

    Les valeurs match_type valides sont :
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type : indique le type d'objet à utiliser pour le filtrage.

  • name : indique le nom de l'objet à utiliser comme filtre.

branch_name

Indique le nom du branchement du référentiel.

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

Si vous n'indiquez pas de valeur branch_name, branch_name est défini sur le branchement de référentiel par défaut.

commit_details

Détails de validation 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 cloud.

Si vous n'indiquez pas de valeur commit_details, commit_details est défini sur le message de validation par défaut qui inclut les informations sur l'utilisateur de la session de base de données en cours et le nom de la base de données qui effectue 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;
/

Remarque sur l'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 permet de télécharger le contenu d'un fichier à partir du référentiel de code cloud 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 le descripteur de référentiel.
file_path Chemin du fichier dans le référentiel.
directory_name Nom de l'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 Permet d'obtenir un fichier à partir d'un branchement spécifique.
tag_name Permet d'obtenir un fichier à partir d'une balise spécifique.
commit_name Permet d'obtenir un 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 d'informations d'identification indiquant la clé d'accès/clé secrète AWS CodeCommit.

repo_name Indique le nom du référentiel.
region Indique la région AWS du 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 renvoie un type opaque. Cette fonction est uniquement prise en charge pour le fournisseur cloud 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 d'informations d'identification indiquant Azure, avec un nom utilisateur et un jeton d'accès personnel.

repo_name Indique le nom du référentiel.
organization Indique l'organisation Azure DevOps.
project Nom du projet d'é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 renvoie 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 d'informations d'identification indiquant GitHub.

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

repo_name Indique le nom du référentiel.
owner Indique le propriétaire 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 de référentiel de code cloud et renvoie un objet JSON opaque. Il s'agit d'une interface générique permettant d'accepter un document JSON. Elle permet d'éviter d'avoir à modifier le code. Il vous suffit de modifier un document JSON lors du déplacement d'un référentiel de code à partir d'un référentiel de code à partir d'un référentiel de code cloud vers un autre référentiel de code cloud.

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 cloud parmi les 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 GitHub Propriétaire de référentiel : DBMS_CLOUD_REPO.PARAM_OWNER

Ce paramètre s'applique uniquement au fournisseur cloud GitHub.

region Région de référentiel AWS : DBMS_CLOUD_REPO_PARAM_REGION

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

organization Organisation Azure : DBMS_CLOUD_REPO_PARAM_ORGANIZATION

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

project Projet d'équipe Azure :DBMS_CLOUD_REPO_PARAM_PROJECT

Ce paramètre s'applique uniquement au fournisseur cloud 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 des instructions SQL à partir d'un fichier dans le référentiel de code cloud identifié par l'argument de descripteur 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 le descripteur de référentiel.
file_path Chemin du fichier dans le référentiel.
branch_name Branch pour installer un fichier à partir d'un branchement spécifique.
tag_name Balise pour installer un fichier à partir d'une balise spécifique.
commit_name ID de validation pour installer un fichier à partir d'une validation spécifique.
stop_on_error Arrête l'exécution des instructions SQL à la première erreur.

Notes d'utilisation

  • Vous pouvez installer des instructions SQL contenant du code SQL imbriqué à partir d'un fichier de référentiel de code cloud à 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 en cours.

  • 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.
    • Ils ne peuvent pas contenir de variables attachées ni de scripts paramétrés.
    • Les instructions SQL doivent se terminer par une barre oblique sur une nouvelle ligne (/).
    • Les scripts peuvent contenir des instructions DDL et DML PLSQL, mais les instructions SELECT directes ne sont pas prises en charge. L'utilisation de l'instruction SELECT dans un bloc PL/SQL est prise en charge.

    Les instructions SQL pouvant être exécutées à l'aide de la commande EXECUTE IMMEDIATE fonctionnent si elles ne contiennent pas de variables attachées 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 des instructions SQL à partir d'un tampon fourni en tant qu'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 Objet CLOB contenant les instructions SQL à exécuter.
stop_on_error Arrête l'exécution des instructions SQL à 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.
    • Ils ne peuvent pas contenir de variables attachées ni de scripts paramétrés.
    • Les instructions SQL doivent se terminer par une barre oblique sur une nouvelle ligne (/).
    • Les scripts peuvent contenir des instructions DDL et DML PLSQL, mais les instructions SELECT directes ne sont pas prises en charge. L'utilisation de l'instruction SELECT dans un bloc PL/SQL est prise en charge.

    Les instructions SQL pouvant être exécutées à l'aide de la commande EXECUTE IMMEDIATE fonctionnent si elles ne contiennent pas de variables attachées 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 répertorie les branches de la branche du référentiel de code cloud identifiées par l'argument de descripteur 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 le descripteur de référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

Exemple

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

Notes d'utilisation

  • Il s'agit d'une fonction de table pipeline dont le type de valeur renvoyée est list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES renvoie la colonne name, qui indique le nom de la branche du référentiel de code cloud.

Fonction LIST_COMMITS

Cette fonction répertorie les validations dans la branche du référentiel de code cloud identifiée par l'argument de descripteur 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 le descripteur de référentiel.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

branch_name Répertorie les validations à partir d'un branchement spécifique.

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

Si vous n'indiquez pas de valeur branch_name, branch_name est défini sur main.

file_path Répertorie les fichiers sous le chemin du sous-dossier indiqué dans le référentiel.

Ce paramètre est uniquement pris en charge pour les fournisseurs de cloud Git et Azure.

Si vous n'indiquez pas de valeur file_path, file_path est défini sur une valeur NULL.

commit_id Répertorier les fichiers à partir du fichier sha/id indiqué

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

Si vous n'indiquez pas de valeur commit_id, commit_id est défini sur 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 pipeline dont le type de valeur renvoyée est list_commit_ret_tab.

  • DBMS_CLOUD_REPO.LIST_COMMITS renvoie la colonne : commit_id.

Fonction LIST_FILES

Cette fonction télécharge un fichier à partir du référentiel de code cloud. Vous pouvez également accéder au contenu d'un fichier à partir d'un branchement, d'une balise ou d'un nom de validation spécifique. Par défaut, le fichier est accessible à partir du branche de référentiel par défaut. Les résultats incluent les noms de fichier et les métadonnées supplémentaires relatives aux fichiers.

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 le descripteur de référentiel.
path Répertorie les fichiers sous le chemin du sous-dossier indiqué dans le référentiel.
branch_name Répertorie les fichiers à partir d'un branche spécifique.
tag_name Répertorie les fichiers à partir d'une balise spécifique.
commit_name Répertorie les fichiers à partir d'une validation spécifique.

Notes d'utilisation

  • Il s'agit d'une fonction de table en pipeline dont le type de retour est list_file_ret_tab.

  • DBMS_CLOUD_REPO.LIST_FILES renvoie 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 répertorie tous les référentiels de code cloud identifiés par l'argument de descripteur repo. Si un nom de référentiel est indiqué pour le descripteur repo, la fonction ne limite pas la liste au nom de référentiel indiqué ; 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 le descripteur de référentiel. Tous les fournisseurs cloud prennent en charge ce paramètre.

Notes d'utilisation

  • Il s'agit d'une fonction de table en pipeline dont le type de retour est list_repo_ret_tab.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES renvoie 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 un branchement de référentiel dans un autre branchement spécifié dans le référentiel de code cloud identifié par l'argument de descripteur repo. La procédure MERGE_BRANCH n'est actuellement pas prise en charge 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 le descripteur de référentiel.

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

branch_name

Spécifie le nom du branchement Git à fusionner.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

target_branch_name

Spécifie le nom du branchement cible dans lequel effectuer la fusion.

Ce paramètre est obligatoire et pris en charge pour tous les fournisseurs cloud.

commit_details

Détails de validation en tant que document JSON

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

Si vous n'indiquez pas de valeur commit_details, commit_details est défini sur le message de validation par défaut qui inclut les informations sur l'utilisateur de la session de base de données en cours et le nom de la base de données qui effectue la validation.

Exemple

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

Remarque sur l'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 télécharge un fichier vers le référentiel de code cloud identifié par l'argument de descripteur repo. La procédure est surchargée pour prendre en charge le téléchargement d'un fichier à partir d'un objet de répertoire ou le télé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 le descripteur de référentiel.
file_path Chemin de fichier pour le téléchargement d'un fichier dans le référentiel.
contents Objet BLOB avec 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 à télécharger vers le référentiel.
branch_name Permet de placer 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 de code cloud identifié par l'argument de descripteur 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 de code cloud.

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 le descripteur de référentiel.

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

new_name Nouveau nom du référentiel.

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

description Texte court de description 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 informations d'identification valides.

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

Exemple

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