Pacchetto DBMS_CLOUD_REPO

Il pacchetto DBMS_CLOUD_REPO prevede l'uso e la gestione dei repository di codice in hosting nel cloud da Oracle Database. I repository di codice cloud supportati includono GitHub, AWS CodeCommit e Azure Repos.

Panoramica di DBMS_CLOUD_REPO

Il pacchetto DBMS_CLOUD_REPO offre un facile accesso ai file nei repository di codice cloud (Git), tra cui: GitHub, AWS CodeCommit e Azure Repos.

Questo pacchetto è un'unica interfaccia per l'accesso ai repository di codici multicloud e consente di caricare file SQL nei repository Git o installare script SQL direttamente dai repository di codici cloud. Questo pacchetto consente inoltre di utilizzare un Cloud Code Repository per gestire le versioni di codice per gli script SQL e per installare o applicare patch al codice dell'applicazione dai repository Git.

Concetti

  • Git Version Control System: Git è un software per tenere traccia delle modifiche in qualsiasi set di file, di solito utilizzato per coordinare il lavoro tra i programmatori durante lo sviluppo collaborativo del codice sorgente durante lo sviluppo del software. I suoi obiettivi includono velocità, integrità dei dati e supporto per flussi di lavoro distribuiti e non lineari.

  • Git Repository: Un repository Git è uno storage virtuale del tuo progetto. Ti consente di salvare le versioni del tuo codice, a cui puoi accedere quando necessario.

Architettura

Il pacchetto DBMS_CLOUD_REPO offre quattro aree di funzioni:
  • Inizializzazione del repository con gestione generica del repository di codici cloud

    • Inizializzare un repository di codici GitHub

    • Inizializzare un repository di codici CodeCommit AWS

    • Inizializza un repository di codici repository di repository di Azure

  • Operazioni di gestione repository

    • Crea un archivio

    • Aggiorna un repository

    • Elenca repository

    • Elimina un repository

  • Operazioni di gestione file repository

    • Caricare un file nel repository di codici da Oracle Database.

    • Scaricare un file dal repository di codici a Oracle Database.

    • Elimina i file dal repository di codici.

    • Elenca i file dal repository di codici.

  • Operazioni di installazione SQL

    • Esporta DDL metadati oggetto database nel repository.
    • Installare le istruzioni SQL da un file nel repository di codici in Oracle Database.

    • Installare le istruzioni SQL da un buffer.

DBMS_CLOUD_REPO Strutture dati

Il package DBMS_CLOUD_REPO definisce i tipi di record e un tipo di oggetto JSON generico repo.

Oggetto JSON REPO

Un oggetto DBMS_CLOUD_REPO REPO è un oggetto JSON opaco che rappresenta un repository di codici cloud di un provider cloud specifico. Un oggetto REPO può essere passato a diverse API DBMS_CLOUD_REPO. Questo oggetto opaco garantisce che le procedure e le funzioni DBMS_CLOUD_REPO siano compatibili con il multicloud; non è necessario modificare alcun codice quando si esegue la migrazione da un provider del repository di codici cloud a un altro repository di codici cloud.

DBMS_CLOUD_REPO Gruppi di sottoprogrammi

I sottoprogrammi del pacchetto DBMS_CLOUD_REPO possono essere raggruppati in quattro categorie: Operazioni di inizializzazione, Operazioni di gestione del repository, Operazioni dei file e Operazioni di installazione SQL.

DBMS_CLOUD_REPO Operazioni di inizializzazione

Elenca i sottoprogrammi delle operazioni di inizializzazione all'interno del pacchetto DBMS_CLOUD_REPO.

Sottoprogramma Descrizione

Funzione INIT_AWS_REPO

Questa funzione inizializza un handle di repository AWS e restituisce un tipo opaco.

Funzione INIT_AZURE_REPO

Questa funzione inizializza un handle di repository Azure e restituisce un tipo opaco.

Funzione INIT_GITHUB_REPO

Questa funzione inizializza un handle del repository GitHub e restituisce un tipo opaco.

Funzione INIT_REPO

Questa funzione inizializza un handle di Cloud Code Repository e restituisce un oggetto JSON opaco.

DBMS_CLOUD_REPO Operazioni di gestione del repository

Mostra i programmi secondari per le operazioni di gestione del repository all'interno del pacchetto DBMS_CLOUD_REPO.

Sottoprogramma Descrizione

Procedura CREATE_REPOSITORY

Questa procedura crea un repository di codici cloud identificato dall'argomento handle repo.

Procedura DELETE_REPOSITORY

Questa procedura elimina il repository di codici cloud identificato dall'argomento handle repo.

Funzione LIST_REPOSITORIES

Questa funzione elenca tutti i repository di codici cloud identificati dall'argomento handle repo.

Procedura UPDATE_REPOSITORY

Questa procedura aggiorna un repository di codici cloud identificato dall'argomento handle repo. La procedura supporta l'aggiornamento del nome, della descrizione o dello stato di visibilità privata, come supportato dal repository di codici cloud.

DBMS_CLOUD_REPO Operazioni di gestione delle filiali del repository

Elenca i sottoprogrammi per le operazioni di gestione della diramazione del repository all'interno del pacchetto DBMS_CLOUD_REPO.

Sottoprogramma Descrizione

Procedura CREATE_BRANCH

Questa procedura crea una diramazione in un repository di codici cloud identificato dall'argomento handle repo.

Procedura DELETE_BRANCH

Questa procedura elimina una diramazione in un repository di codici cloud identificato dall'argomento handle repo.

Funzione LIST_BRANCHES

Questa funzione elenca tutte le diramazioni del repository di codici cloud identificate dall'argomento handle repo.

Funzione LIST_COMMITS

Questa funzione elenca tutti i commit in una diramazione del repository di codici cloud identificata dall'argomento handle repo.

Procedura MERGE_BRANCH

Questa procedura unisce una diramazione Cloud Code Repository a un'altra diramazione specificata in un repository di codici cloud identificato dall'argomento di gestione repo.

Operazioni sui file DBMS_CLOUD_REPO

Elenca i sottoprogrammi per le operazioni sui file all'interno del pacchetto DBMS_CLOUD_REPO.

Sottoprogramma Descrizione

Procedura DELETE_FILE

Questa procedura elimina un file dal repository di codici cloud identificato dall'argomento handle repo.

GET_FILE Procedura e funzione

La funzione scarica il contenuto di un file dal repository del codice cloud. La procedura consente di scaricare il contenuto di un file dal repository Cloud Code e salvare il file in una directory.

Funzione LIST_FILES

Questa funzione scarica un file dal repository di codici cloud. Facoltativamente, è possibile accedere al contenuto del file da una diramazione, un tag o un nome commit specifici. Per impostazione predefinita, è possibile accedere al file dalla diramazione predefinita del repository.

Procedura PUT_FILE

Questa procedura carica un file nel repository di codici cloud identificato dall'argomento handle repo. La procedura viene sovraccaricata per supportare il caricamento di un file da un oggetto directory o il caricamento del contenuto da un CLOB nel file di repository.

DBMS_CLOUD_REPO Operazioni di installazione SQL

Elenca i sottoprogrammi per le operazioni di installazione SQL nel pacchetto DBMS_CLOUD_REPO.

Sottoprogramma Descrizione

Procedura EXPORT_OBJECT

Questa procedura carica i metadati DDL di un oggetto di database nel repository di codici cloud identificato dall'argomento handle repo.

Procedura EXPORT_SCHEMA

Questa procedura esporta i metadati di tutti gli oggetti in uno schema in un ramo del repository di codici cloud identificato dall'argomento dell'handle repo.

Procedura INSTALL_FILE

Questa procedura installa istruzioni SQL da un file nel repository Cloud Code identificato dall'argomento handle repo.

Procedura INSTALL_SQL

Questa procedura installa le istruzioni SQL da un buffer fornito come input.

Riepilogo dei sottoprogrammi DBMS_CLOUD_REPO

In questa sezione vengono descritti i programmi secondari DBMS_CLOUD_REPO forniti con Autonomous Database.

Procedura CREATE_BRANCH

Questa procedura crea una diramazione nel repository di codici cloud identificata dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo

Specifica l'handle del repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

branch_name

Specifica il nome della diramazione repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

parent_branch_name

Crea la nuova diramazione utilizzando il commit principale della diramazione padre specificata.

Questo parametro è supportato per tutti i provider di servizi cloud.

Se non si specifica un valore parent_branch_name, parent_branch_name viene impostato su main.

parent_commit_id

Crea la nuova diramazione utilizzando il commit del repository specificato.

Questo parametro è supportato per tutti i provider di servizi cloud.

Se non si specifica un valore parent_commit_id, parent_commit_id viene impostato su un valore NULL.

Esempio

Nota

Per creare una diramazione in un repository di codici cloud, è necessario specificare la diramazione padre o l'ID commit padre.
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

Nota per l'uso

Per eseguire la procedura DBMS_CLOUD_REPO.CREATE_BRANCH, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_REPO.

Procedura CREATE_REPOSITORY

Questa procedura crea un repository di codici cloud identificato dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.

Questo parametro è supportato per tutti i provider di servizi cloud.

description Breve descrizione di testo per il repository.

Questo parametro è supportato per i provider cloud GITHUB e AWS.

private

Il repository è privato e accessibile solo con credenziali valide

Questo parametro è supportato solo per il provider cloud GITHUB.

Esempio

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

Procedura DELETE_BRANCH

Questa procedura elimina una diramazione nel repository di codici cloud identificata dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

branch_name Elimina la diramazione da un repository specifico.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

Esempio

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

Nota per l'uso

Per eseguire la procedura DBMS_CLOUD_REPO.DELETE_BRANCH, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_REPO.

Procedura DELETE_FILE

Questa procedura elimina un file dal repository di codici cloud identificato dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.
file_path Percorso del file per eliminare il file nel repository.
branch_name Elimina il file da una diramazione specifica.
commit_details

Dettagli commit come documento JSON

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

Esempio

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

Procedura DELETE_REPOSITORY

Questa procedura elimina il repository di codici cloud identificato dall'argomento handle repo.

Sintassi

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.

Esempio

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

Procedura EXPORT_OBJECT

Questa procedura carica i metadati DDL di un oggetto di database nel repository di codici cloud identificato dall'argomento handle repo. Questa procedura consente di caricare facilmente la definizione dei metadati di un oggetto di database in un unico passo.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.
file_path Percorso del file per caricare i metadati dell'oggetto nel repository.
object_type

Tipo di oggetto supportato da DBMS_METADATA. Per informazioni dettagliate, vedere DBMS_METADATA: tabella Tipi di oggetto.

object_name Nome dell'oggetto di database per recuperare i metadati.
object_schema Schema proprietario dell'oggetto di database.
branch_name Inserire il file in una diramazione specifica.
commit_details

Dettagli commit come documento JSON:{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

append Aggiungi DDL metadati al file esistente.

Nota per l'uso

Per il controllo personalizzato sull'oggetto DDL, è possibile utilizzare DBMS_METADATA.GET_DDL insieme a DBMS_CLOUD_REPO.PUT_FILE. Per ottenere la definizione dei metadati dell'oggetto, l'utente corrente deve disporre di privilegi per recuperare i metadati dell'oggetto. Per informazioni sui requisiti di sicurezza del pacchetto, vedere DBMS_METADATA.

Esempio

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

Procedura EXPORT_SCHEMA

Questa procedura esporta i metadati di tutti gli oggetti in uno schema nella diramazione Repository di codici cloud identificata dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo

Specifica l'handle del repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

file_path

Specifica il nome del file di schema da caricare nel repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

schema_name

Specifica il nome dello schema per il quale deve essere caricato uno script DDL nella diramazione del repository di codici cloud.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

filter_list

Specifica il CLOB dell'array JSON che definisce le condizioni di filtro per includere o escludere gli oggetti i cui metadati devono essere esportati.

Questo parametro è supportato per tutti i provider di servizi cloud.

I parametri JSON per filter_list sono:
  • match_type: specifica il tipo di filtro da applicare ai tipi di oggetto o ai nomi di oggetto.

    I valori validi per match_type sono:
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type: specifica il tipo di oggetto in base al quale filtrare.

  • name: specifica il nome dell'oggetto da filtrare.

branch_name

Specifica il nome della diramazione repository.

Questo parametro è supportato per tutti i provider di servizi cloud.

Se non si fornisce un valore branch_name, branch_name viene impostato sulla diramazione del repository predefinita.

commit_details

Dettagli commit come documento JSON

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

Questo parametro è supportato per tutti i provider di servizi cloud.

Se non si fornisce un valore commit_details, commit_details viene impostato sul messaggio di commit predefinito che include le informazioni sull'utente della sessione di database corrente e sul nome del database che esegue il commit.

Esempio

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 per l'uso

Per eseguire la procedura DBMS_CLOUD_REPO.EXPORT_SCHEMA, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_REPO.

GET_FILE Procedura e funzione

La funzione scarica il contenuto di un file dal repository del codice cloud. La procedura consente di scaricare il contenuto di un file dal repository Cloud Code e salvare il file in una directory.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.
file_path Percorso file nel repository.
directory_name Nome dell'oggetto directory per salvare il contenuto del file.
target_file_name Nome del file di destinazione per salvare il contenuto nella directory.
branch_name Recupera file da una diramazione specifica.
tag_name Recupera file da un tag specifico.
commit_name Recupera file da un commit specifico.

Esempio

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

Funzione INIT_AWS_REPO

Questa funzione inizializza un handle di repository AWS e restituisce un tipo opaco.

Sintassi

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

Parametri

Parametro Descrizione
credential_name

Oggetto credenziale che specifica accesskey/secretkey AWS CodeCommit.

repo_name Specifica il nome del repository.
region Specifica l'area AWS per il repository CodeCommit.

Esempio

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

Funzione INIT_AZURE_REPO

Questa funzione inizializza un handle di repository Azure e restituisce un tipo opaco. Questa funzione è supportata solo per il provider cloud di Azure.

Sintassi

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

Parametri

Parametro Descrizione
credential_name

Oggetto credenziale che specifica Azure, con un nome utente e un token di accesso personale (PAT).

repo_name Specifica il nome del repository.
organization Specifica l'organizzazione DevOps di Azure.
project Nome progetto team Azure.

Esempio

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

Funzione INIT_GITHUB_REPO

Questa funzione inizializza un handle del repository GitHub e restituisce un tipo opaco.

Sintassi

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

Parametri

Parametro Descrizione
credential_name

Oggetto credenziale che specifica GitHub.

E-mail utente e token di accesso personale (PAT).

repo_name Specifica il nome del repository.
owner Specifica il proprietario del repository.

Esempio

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

Funzione INIT_REPO

Questa funzione inizializza un handle di Cloud Code Repository e restituisce un oggetto JSON opaco. Questa funzione è un'interfaccia generica per accettare un documento JSON ed evita di dover modificare il codice. È sufficiente modificare un documento JSON quando si sposta un repository di codici da un repository di codici cloud a un altro repository di codici cloud.

Sintassi

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

Parametri

Parametro JSON Descrizione
provider

Provider del repository di codici cloud tra i seguenti:

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name Specifica il nome del repository. DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner GitHub Proprietario del repository. DBMS_CLOUD_REPO.PARAM_OWNER

Questo parametro è applicabile solo per il provider cloud GitHub.

region Area repository AWS DBMS_CLOUD_REPO_PARAM_REGION

Questo parametro è applicabile solo per il provider cloud AWS.

organization Organizzazione Azure DBMS_CLOUD_REPO_PARAM_ORGANIZATION

Questo parametro è applicabile solo per il provider cloud di Azure.

project Progetto Team Azure DBMS_CLOUD_REPO_PARAM_PROJECT

Questo parametro è applicabile solo per il provider cloud Azure

Esempio

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_REPO(
          params => JSON_OBJECT('credential_name' value 'mycred',
                        'repo_name'       value 'myrepo',
                        'repo_owner'      value 'foo')
       );
END;
/

Procedura INSTALL_FILE

Questa procedura installa istruzioni SQL da un file nel repository Cloud Code identificato dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.
file_path Percorso file nel repository.
branch_name Diramazione per installare il file da una diramazione specifica.
tag_name Tag per installare il file da una tag specifica.
commit_name ID commit per installare il file da un commit specifico.
stop_on_error Interrompere l'esecuzione delle istruzioni SQL al primo errore.

Note sull'uso

  • È possibile installare istruzioni SQL contenenti SQL nidificate da un file del repository Cloud Code utilizzando quanto riportato di seguito.

    • @: include un file SQL con un percorso relativo alla ROOT del repository.

    • @@: include un file SQL con un percorso relativo al file corrente.

  • Gli script sono intesi come script di installazione dello schema e non come script SQL generici:

    • Gli script non possono contenere comandi specifici del client SQL*Plus.
    • Gli script non possono contenere bind variable o script parametrizzati.
    • Le istruzioni SQL devono essere terminate con una barra su una nuova riga (/).
    • Gli script possono contenere istruzioni DDL e DML PLSQL, ma le istruzioni SELECT dirette non sono supportate. È supportato l'utilizzo di SELECT all'interno di un blocco PL/SQL.

    Qualsiasi istruzione SQL che può essere eseguita utilizzando EXECUTE IMMEDIATE funzionerà se non contiene bind variable o definisce.

Esempio

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

Procedura INSTALL_SQL

Questa procedura installa le istruzioni SQL da un buffer fornito come input.

Sintassi

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

Parametri

Parametro Descrizioni
content CLOB contenente le istruzioni SQL da eseguire.
stop_on_error Interrompere l'esecuzione delle istruzioni SQL al primo errore.

Note sull'uso

  • Gli script sono intesi come script di installazione dello schema e non come script SQL generici:

    • Gli script non possono contenere comandi specifici del client SQL*Plus.
    • Gli script non possono contenere bind variable o script parametrizzati.
    • Le istruzioni SQL devono essere terminate con una barra su una nuova riga (/).
    • Gli script possono contenere istruzioni DDL e DML PLSQL, ma le istruzioni SELECT dirette non sono supportate. È supportato l'utilizzo di SELECT all'interno di un blocco PL/SQL.

    Qualsiasi istruzione SQL che può essere eseguita utilizzando EXECUTE IMMEDIATE funzionerà se non contiene bind variable o definisce.

Esempio

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

Funzione LIST_BRANCHES

Questa funzione elenca le diramazioni nella diramazione del repository di codici cloud identificate dall'argomento handle repo.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

Esempio

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

Note sull'uso

  • Questa è una funzione di tabella con tipo restituito list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES restituisce la colonna: name, che indica il nome della diramazione Cloud Code Repository.

Funzione LIST_COMMITS

Questa funzione elenca i commit nella diramazione del repository di codici cloud identificata dall'argomento handle repo.

Sintassi

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;

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

branch_name Elenca i commit da una diramazione specifica.

Questo parametro è supportato per tutti i provider di servizi cloud.

Se non si specifica un valore branch_name, branch_name viene impostato su main.

file_path Elenca i file sotto il percorso della sottocartella specificato nel repository.

Questo parametro è supportato solo per i provider cloud Git e Azure.

Se non si specifica un valore file_path, file_path viene impostato su un valore NULL.

commit_id Elenca i file che iniziano dal file sha/id specificato

Questo parametro è supportato per tutti i provider di servizi cloud.

Se non si specifica un valore commit_id, commit_id viene impostato su un valore NULL.

Esempio

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

Esempio

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

Note sull'uso

  • Questa è una funzione di tabella con tipo restituito list_commit_ret_tab.

  • DBMS_CLOUD_REPO.LIST_COMMITS restituisce la colonna: commit_id.

Funzione LIST_FILES

Questa funzione scarica un file dal repository di codici cloud. Facoltativamente, è possibile accedere al contenuto del file da una diramazione, un tag o un nome commit specifici. Per impostazione predefinita, è possibile accedere al file dalla diramazione predefinita del repository. I risultati includono i nomi dei file e i metadati aggiuntivi sui file.

Sintassi

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;

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.
path Elenca i file sotto il percorso della sottocartella specificato nel repository.
branch_name Elenca i file da una diramazione specifica.
tag_name Elenca i file da un tag specifico.
commit_name Elenca i file da un commit specifico.

Note sull'uso

  • Questa è una funzione di tabella con tipo restituito list_file_ret_tab.

  • DBMS_CLOUD_REPO.LIST_FILES restituisce le colonne: id, name, url e bytes.

Esempio

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

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

Funzione LIST_REPOSITORIES

Questa funzione elenca tutti i repository di codici cloud identificati dall'argomento handle repo. Se per l'handle repo è stato specificato un nome di repository, la funzione non limita l'elenco al nome di repository specificato; elenca tutti i repository accessibili all'utente.

Sintassi

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

Parametri

Parametro Descrizione
repo

Specifica l'handle del repository. Questo parametro è supportato da tutti i provider di servizi cloud.

Note sull'uso

  • Questa è una funzione di tabella con tipo restituito list_repo_ret_tab.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES restituisce le colonne: id, name, owner, description, private, url, bytes, created e last_modified.

Esempio

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

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

Procedura MERGE_BRANCH

Questa procedura unisce una diramazione del repository a un'altra diramazione specificata nel repository di codici cloud identificata dall'argomento di gestione repo. La procedura MERGE_BRANCH non è attualmente supportata in Azure.

Sintassi

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

Parametri

Parametro Descrizione
repo

Specifica l'handle del repository.

Questo parametro è obbligatorio e supportato per i provider cloud GITHUB e AWS.

branch_name

Specifica il nome della diramazione Git da unire.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

target_branch_name

Specifica il nome della diramazione target in cui eseguire l'unione.

Questo parametro è obbligatorio e supportato per tutti i provider cloud.

commit_details

Dettagli commit come documento JSON

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

Se non si specifica un valore commit_details, commit_details viene impostato sul messaggio di commit predefinito che include le informazioni sull'utente della sessione di database corrente e sul nome del database che esegue il commit.

Esempio

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

Nota per l'uso

Per eseguire la procedura DBMS_CLOUD_REPO.MERGE_BRANCH, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_REPO.

Procedura PUT_FILE

Questa procedura carica un file nel repository di codici cloud identificato dall'argomento handle repo. La procedura viene sovraccaricata per supportare il caricamento di un file da un oggetto directory o il caricamento del contenuto da un BLOB nel file di repository.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.
file_path Percorso del file per caricare il file nel repository.
contents BLOB contenente il contenuto del file.
directory_name Nome dell'oggetto directory contenente il nome del file.
source_file_name Nome del file di origine da caricare nel repository.
branch_name Inserire il file in una diramazione specifica.
commit_details

Dettagli commit come documento JSON:

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

Esempio

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

Procedura UPDATE_REPOSITORY

Questa procedura aggiorna un repository di codici cloud identificato dall'argomento handle repo. UPDATE_REPOSITORY supporta l'aggiornamento del nome, della descrizione o dello stato di visibilità privata, come supportato dal repository di codici cloud.

Sintassi

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

Parametri

Parametro Descrizione
repo Specifica l'handle del repository.

Questo parametro è supportato per tutti i provider di servizi cloud.

new_name Nuovo nome per il repository.

Questo parametro è supportato per tutti i provider di servizi cloud.

description Breve descrizione di testo per il repository.

Questo parametro è supportato per i provider cloud GITHUB e AWS.

private

Il repository è privato e accessibile solo con credenziali valide.

Questo parametro è supportato per il provider cloud GITHUB.

Esempio

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