Pacchetto DBMS_CLOUD_REPO

Il package DBMS_CLOUD_REPO consente di utilizzare e gestire i repository di codici ospitati nel cloud da Oracle Database. I repository di codici cloud supportati includono GitHub, AWS CodeCommit e Azure Repos.

DBMS_CLOUD_REPO Panoramica

Il pacchetto DBMS_CLOUD_REPO fornisce un facile accesso ai file nei repository Cloud Code (Git), tra cui: GitHub, AWS CodeCommit e Azure Repos.

Questo pacchetto è una singola 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 repository di codici cloud 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 che sviluppano in modo collaborativo il 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.

  • Repository Git: un repository Git è una memorizzazione virtuale del progetto. Ti permette di salvare le versioni del tuo codice, a cui puoi accedere quando necessario.

Architettura

Il pacchetto DBMS_CLOUD_REPO include quattro aree di funzionalità:
  • Inizializzazione del repository con gestione del repository di codici cloud generico

    • Inizializza un repository di codici GitHub

    • Inizializza un repository di codici AWS CodeCommit

    • Inizializza un repository di codici repository di Azure

  • Operazioni di gestione del repository

    • Creare un repository

    • Aggiornare un repository

    • Elenca i repository

    • Eliminare un repository

  • Operazioni di gestione file repository

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

    • Scaricare un file dal repository di codici in 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 per rappresentare 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 di file e Operazioni di installazione SQL.

DBMS_CLOUD_REPO Operazioni di inizializzazione

Elenca i sottoprogrammi per le operazioni di inizializzazione all'interno del package DBMS_CLOUD_REPO.

Programma secondario 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 del repository di Azure e restituisce un tipo opaco.

Funzione INIT_GITHUB_REPO

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

Funzione INIT_REPO

Questa funzione inizializza un handle del repository di codici cloud e restituisce un oggetto JSON opaco.

DBMS_CLOUD_REPO Operazioni di gestione del repository

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

Programma secondario descrizione;

CREATE_REPOSITORY Procedura

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

DELETE_REPOSITORY Procedura

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 di gestione repo.

UPDATE_REPOSITORY Procedura

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

DBMS_CLOUD_REPO Operazioni di gestione delle diramazioni del repository

Elenca i sottoprogrammi per le operazioni di gestione delle diramazioni del repository all'interno del package DBMS_CLOUD_REPO.

Programma secondario descrizione;

CREATE_BRANCH Procedura

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

DELETE_BRANCH Procedura

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.

MERGE_BRANCH Procedura

Questa procedura unisce una diramazione del repository di codici cloud in un'altra diramazione specificata in un repository di codici cloud identificato dall'argomento handle repo.

DBMS_CLOUD_REPO Operazioni file

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

Programma secondario descrizione;

DELETE_FILE Procedura

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 Cloud Code. La procedura consente di scaricare il contenuto di un file dal repository Cloud Code e di salvare il file in una directory.

Funzione LIST_FILES

Questa funzione scarica un file dal repository Cloud Code. Facoltativamente, è possibile accedere al contenuto del file da una diramazione, un tag o un nome di commit specifici. Per impostazione predefinita, l'accesso al file viene eseguito dalla diramazione del repository predefinita.

PUT_FILE Procedura

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

DBMS_CLOUD_REPO Operazioni di installazione SQL

Elenca i sottoprogrammi per le operazioni di installazione SQL all'interno del package DBMS_CLOUD_REPO.

Programma secondario descrizione;

EXPORT_OBJECT Procedura

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

EXPORT_SCHEMA Procedura

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

INSTALL_FILE Procedura

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

INSTALL_SQL Procedura

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

Riepilogo dei sottoprogrammi DBMS_CLOUD_REPO

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

CREATE_BRANCH Procedura

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

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

parent_branch_name

Crea il nuovo ramo utilizzando il commit principale del ramo padre specificato.

Questo parametro è supportato per tutti i provider 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 cloud.

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

Esempio

Nota

Per creare una diramazione in un repository di Cloud Code, è 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.

CREATE_REPOSITORY Procedura

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

description Breve descrizione del testo per il repository.

Questo parametro è supportato per il 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;
/

DELETE_BRANCH Procedura

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

DELETE_FILE Procedura

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

DELETE_REPOSITORY Procedura

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

EXPORT_OBJECT Procedura

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 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 file per caricare i metadati dell'oggetto nel repository.
object_type

Tipo di oggetto supportato da DBMS_METADATA. Per ulteriori informazioni, 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 a 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, è necessario che l'utente corrente disponga dei privilegi necessari per recuperare i metadati dell'oggetto. Per i 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;
/

EXPORT_SCHEMA Procedura

Questa procedura esporta i metadati di tutti gli oggetti in uno schema nel ramo Repository di codici cloud identificato dall'argomento di 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 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 match_type validi sono i seguenti:
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type: specifica il tipo di oggetto da filtrare.

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

branch_name

Specifica il nome della diramazione del repository.

Questo parametro è supportato per tutti i provider 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 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 del 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 Cloud Code. La procedura consente di scaricare il contenuto di un file dal repository Cloud Code e di 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 del file nel repository.
directory_name Nome oggetto directory per salvare il contenuto del file.
target_file_name Nome del file di destinazione per salvare i contenuti nella directory.
branch_name Recupera il file da una diramazione specifica.
tag_name Recupera il file da una tag specifica.
commit_name Recupera il 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 la chiave di accesso/chiave segreta 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 del repository di 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 delle credenziali 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 del progetto del 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 di 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 del repository di codici cloud 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 di repository di codici cloud dai seguenti elementi:

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

INSTALL_FILE Procedura

Questa procedura installa le 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 del 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 Arrestare l'esecuzione delle istruzioni SQL al primo errore.

Note per uso

  • È possibile installare istruzioni SQL contenenti istruzioni SQL nidificate da un file di repository di Cloud Code utilizzando gli elementi riportati 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 con parametri.
    • 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'uso 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 definizioni.

Esempio

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

INSTALL_SQL Procedura

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 Arrestare l'esecuzione delle istruzioni SQL al primo errore.

Note per 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 con parametri.
    • 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'uso 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 definizioni.

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 i rami nel ramo Cloud Code Repository identificato 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 per uso

  • Funzione di tabella con pipeline con tipo restituito list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES restituisce la colonna name, che indica il nome della diramazione del repository di codici cloud.

Funzione LIST_COMMITS

Questa funzione elenca i commit nella diramazione Cloud Code Repository 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 cloud.

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

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

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

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

commit_id Elenca i file a partire dal file sha/id specificato

Questo parametro è supportato per tutti i provider cloud.

Se non si fornisce 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 per uso

  • Funzione di tabella con pipeline 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 Cloud Code. Facoltativamente, è possibile accedere al contenuto del file da una diramazione, un tag o un nome di commit specifici. Per impostazione predefinita, l'accesso al file viene eseguito dalla diramazione del repository predefinita. I risultati includono i nomi dei file e metadati aggiuntivi relativi ai 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 nel percorso della sottocartella specificato nel repository.
branch_name Elenca i file da una diramazione specifica.
tag_name Elenca i file da una tag specifica.
commit_name Elenca i file da un commit specifico.

Note per uso

  • Funzione di tabella con pipeline 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 di gestione 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 cloud.

Note per uso

  • Funzione di tabella con pipeline 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

MERGE_BRANCH Procedura

Questa procedura unisce una diramazione del repository a un'altra diramazione specificata nel repository di codici cloud identificato dall'argomento handle 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 di destinazione 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 fornisce un valore commit_details, commit_details viene impostato sul messaggio di commit predefinito che include le informazioni sull'utente della sessione del 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.

PUT_FILE Procedura

Questa procedura carica un file nel repository di codici cloud identificato dall'argomento handle repo. La procedura è sovraccarica per supportare il caricamento di un file da un oggetto directory o il caricamento del contenuto da un BLOB nel file del 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 file per il caricamento del file nel repository.
contents BLOB che contiene il contenuto del file.
directory_name Nome oggetto directory che contiene il nome 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;
/

UPDATE_REPOSITORY Procedura

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

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

new_name Nuovo nome per il repository.

Questo parametro è supportato per tutti i provider cloud.

description Breve descrizione del 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;
/