DBMS_CLOUD_REPO-Package

Das Package DBMS_CLOUD_REPO ermöglicht die Verwendung und Verwaltung von in der Cloud gehosteten Code-Repositorys aus Oracle Database. Zu den unterstützten Cloudcode-Repositorys gehören GitHub, AWS CodeCommit und Azure Repos.

DBMS_CLOUD_REPO - Überblick

Das Package DBMS_CLOUD_REPO bietet einfachen Zugriff auf Dateien in Cloudcode-(Git-)Repositorys, einschließlich GitHub-, AWS CodeCommit- und Azure-Repositorys.

Dieses Package ist eine einzelne Schnittstelle für den Zugriff auf Multicloud-Code-Repositorys und ermöglicht Ihnen, SQL-Dateien in Git-Repositorys hochzuladen oder SQL-Skripte direkt aus Cloud-Code-Repositorys zu installieren. Mit diesem Package können Sie außerdem mit einem Cloud-Code-Repository Codeversionen für SQL-Skript verwalten und Anwendungscode aus Git-Repositorys installieren oder patchen.

Grundlagen

  • Git-Versionskontrollsystem: Git ist eine Software zur Verfolgung von Änderungen in einem beliebigen Set von Dateien. In der Regel wird sie verwendet, um die Arbeit zwischen Programmierern zu koordinieren, die während der Softwareentwicklung Quellcode entwickeln. Ihre Ziele umfassen unter anderem Geschwindigkeit, Datenintegrität und Unterstützung für verteilte, nichtlineare Workflows.

  • Git-Repository: Ein Git-Repository ist ein virtueller Speicher Ihres Projekts. Damit können Sie Versionen Ihres Codes speichern, auf die Sie bei Bedarf zugreifen können.

Architektur

Das Package DBMS_CLOUD_REPO enthält vier Funktionsbereiche:
  • Repository-Initialisierung mit generischem Cloud-Code-Repository-Handle

    • GitHub-Code-Repository initialisieren

    • AWS CodeCommit-Code-Repository initialisieren

    • Azure Repos-Code-Repository initialisieren

  • Repository-Verwaltungsvorgänge

    • Repository erstellen

    • Repository aktualisieren

    • Repositorys auflisten

    • Repository löschen

  • Repository-Dateiverwaltungsvorgänge

    • Datei aus Oracle Database in das Code-Repository hochladen

    • Datei aus dem Code-Repository in Oracle Database herunterladen

    • Dateien aus dem Code-Repository löschen

    • Dateien aus Code-Repository auflisten

  • SQL-Installationsvorgänge

    • Metadaten-DDL eines Datenbankobjekts in Repository exportieren
    • SQL-Anweisungen aus einer Datei im Code-Repository in Oracle Database installieren

    • SQL-Anweisungen aus einem Puffer installieren

DBMS_CLOUD_REPO Datenstrukturen

Das Package DBMS_CLOUD_REPO definiert Datensatztypen und den generischen JSON-Objekttyp repo.

REPO-JSON-Objekt

Ein REPO-Objekt in DBMS_CLOUD_REPO ist ein nicht transparentes JSON-Objekt, das ein Cloud-Code-Repository eines bestimmten Cloud-Providers darstellt. Ein REPO-Objekt kann an verschiedene DBMS_CLOUD_REPO-APIs übergeben werden. Dieses nicht transparente Objekt stellt sicher, dass DBMS_CLOUD_REPO-Prozeduren und -Funktionen mit Multicloud kompatibel sind. Sie müssen keinen Code ändern, wenn Sie von einem Cloud-Code-Repository-Provider zu einem anderen Cloud-Code-Repository migrieren.

DBMS_CLOUD_REPO Unterprogrammgruppen

Die Unterprogramme des Packages DBMS_CLOUD_REPO können in vier Kategorien unterteilt werden: Initialisierungsvorgänge, Repository-Verwaltungsvorgänge, Dateivorgänge und SQL-Installationsvorgänge.

DBMS_CLOUD_REPO Initialisierungsvorgänge

Listet die Unterprogramme für Initialisierungsvorgänge im Package DBMS_CLOUD_REPO auf.

Unterprogramm Beschreibung

Funktion INIT_AWS_REPO

Diese Funktion initialisiert ein Handle für ein AWS-Repository und gibt einen nicht transparenten Typ zurück.

Funktion INIT_AZURE_REPO

Mit dieser Funktion wird ein Handle für ein Azure-Repository initialisiert und ein nicht transparenter Typ zurückgegeben.

Funktion INIT_GITHUB_REPO

Diese Funktion initialisiert ein GitHub-Repository-Handle und gibt einen nicht transparenten Typ zurück.

Funktion INIT_REPO

Diese Funktion initialisiert ein Handle für ein Cloud-Code-Repository und gibt ein nicht transparentes JSON-Objekt zurück.

DBMS_CLOUD_REPO Repository-Managementvorgänge

Zeigt die Unterprogramme für Repository-Verwaltungsvorgänge im Package DBMS_CLOUD_REPO an.

Unterprogramm Beschreibung

Prozedur CREATE_REPOSITORY

Diese Prozedur erstellt ein Cloudcode-Repository, das mit dem Handle- Argument repo identifiziert wird.

Prozedur DELETE_REPOSITORY

Diese Prozedur löscht das Cloud-Code-Repository, das durch das Handle-Argument repo identifiziert wird.

Funktion LIST_REPOSITORIES

Diese Funktion enthält alle Cloud-Code-Repositorys, die mit dem Handle-Argument repo identifiziert werden.

Prozedur UPDATE_REPOSITORY

Diese Prozedur aktualisiert ein Cloud-Code-Repository, das mit dem Handle- Argument repo identifiziert wird. Die Prozedur unterstützt die Aktualisierung des Namens, der Beschreibung oder des privaten Sichtbarkeitsstatus, wie vom Cloud-Code-Repository unterstützt.

DBMS_CLOUD_REPO Repository-Verzweigungsverwaltungsvorgänge

Listet die Unterprogramme für Repository-Verzweigungsverwaltungsvorgänge im Package DBMS_CLOUD_REPO auf.

Unterprogramm Beschreibung

Prozedur CREATE_BRANCH

Diese Prozedur erstellt eine Verzweigung in einem Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

Prozedur DELETE_BRANCH

Diese Prozedur löscht eine Verzweigung in einem Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

Funktion LIST_BRANCHES

Diese Funktion enthält alle Cloud-Code-Repository-Verzweigungen, die mit dem Handle-Argument repo identifiziert werden.

Funktion LIST_COMMITS

Diese Funktion listet alle Commits in einer Cloud Code Repository-Verzweigung auf, die durch das Handle-Argument repo identifiziert werden.

Prozedur MERGE_BRANCH

Diese Prozedur führt eine Cloud-Code-Repository-Verzweigung in einer anderen angegebenen Verzweigung in einem Cloud-Code-Repository zusammen, das durch das Handle-Argument repo identifiziert wird.

DBMS_CLOUD_REPO-Dateivorgänge

Listet die Unterprogramme für Dateivorgänge im Package DBMS_CLOUD_REPO auf.

Unterprogramm Beschreibung

Prozedur DELETE_FILE

Diese Prozedur löscht eine Datei aus dem Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

GET_FILE Prozedur und Funktion

Die Funktion lädt den Inhalt einer Datei aus dem Cloud-Code-Repository herunter. Mit dieser Prozedur können Sie den Inhalt einer Datei aus dem Cloud-Code-Repository herunterladen und die Datei in einem Verzeichnis speichern.

LIST_FILES-Funktion

Diese Funktion lädt eine Datei aus dem Cloud-Code-Repository herunter. Auf den Dateiinhalt können Sie optional über eine bestimmte Verzweigung, ein bestimmtes Tag oder einen bestimmten Commit-Namen zugreifen. Standardmäßig wird über die Standard-Repository-Verzweigung auf die Datei zugegriffen.

Prozedur PUT_FILE

Diese Prozedur lädt eine Datei in das Cloud-Code-Repository hoch, das durch das Handle- Argument repo identifiziert wird. Die Prozedur wird überladen, um entweder das Upload einer Datei aus einem Verzeichnisobjekt oder das Upload des Inhalts aus einem CLOB in die Repository-Datei zu unterstützen.

DBMS_CLOUD_REPO SQL-Installationsvorgänge

Listet die Unterprogramme für SQL-Installationsvorgänge im Package DBMS_CLOUD_REPO auf.

Unterprogramm Beschreibung

EXPORT_OBJECT-Prozedur

Diese Prozedur hochgeladen die DDL-Metadaten eines Datenbankobjekts in das Cloud-Code-Repository, das durch das Handleargument repo identifiziert wird.

Prozedur EXPORT_SCHEMA

Diese Prozedur exportiert Metadaten aller Objekte in einem Schema in eine Cloud-Code-Repository-Verzweigung, die durch das Handle-Argument repo identifiziert wird.

Prozedur INSTALL_FILE

Diese Prozedur installiert SQL-Anweisungen aus einer Datei im Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

Prozedur INSTALL_SQL

Diese Prozedur installiert SQL-Anweisungen aus einem Puffer, der als Eingabe angegeben wird.

Zusammenfassung der DBMS_CLOUD_REPO-Unterprogramme

In diesem Abschnitt werden die DBMS_CLOUD_REPO-Unterprogramme beschrieben, die mit Autonomous Database bereitgestellt werden.

Prozedur CREATE_BRANCH

Diese Prozedur erstellt eine Verzweigung im Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

Syntax

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

Parameter

Parameter Beschreibung
repo

Gibt das Repository Handle an.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

branch_name

Gibt den Repository-Verzweigungsnamen an.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

parent_branch_name

Erstellt die neue Verzweigung mit dem Head Commit der angegebenen übergeordneten Verzweigung.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

Wenn Sie keinen parent_branch_name-Wert angeben, wird parent_branch_name auf main gesetzt.

parent_commit_id

Erstellt die neue Verzweigung mit dem angegebenen Repository Commit.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

Wenn Sie keinen parent_commit_id-Wert angeben, wird parent_commit_id auf einen NULL-Wert gesetzt.

Beispiel

Hinweis

Um eine Verzweigung in einem Cloud-Code-Repository zu erstellen, müssen Sie die übergeordnete Verzweigung oder die übergeordnete Commit-ID angeben.
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

Hinweis zur Verwendung

Um die Prozedur DBMS_CLOUD_REPO.CREATE_BRANCH auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_REPO besitzen.

Prozedur CREATE_REPOSITORY

Diese Prozedur erstellt ein Cloudcode-Repository, das mit dem Handle- Argument repo identifiziert wird.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

description Eine kurze Textbeschreibung für das Repository.

Dieser Parameter wird für GITHUB- und AWS-Cloud-Provider unterstützt.

private

Das Repository ist privat und kann nur mit gültigen Zugangsdaten aufgerufen werden.

Dieser Parameter wird nur für den GITHUB-Cloud-Provider unterstützt.

Beispiel

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

Prozedur DELETE_BRANCH

Diese Prozedur löscht eine Verzweigung im Cloud-Code-Repository, das durch das Handle-Argument repo identifiziert wird.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

branch_name Verzweigung aus einem bestimmten Repository löschen.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

Beispiel

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

Hinweis zur Verwendung

Um die Prozedur DBMS_CLOUD_REPO.DELETE_BRANCH auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_REPO besitzen.

Prozedur DELETE_FILE

Diese Prozedur löscht eine Datei aus dem Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.
file_path Dateipfad zum Löschen der Datei im Repository.
branch_name Datei aus einer bestimmten Filiale löschen.
commit_details

Commit-Details als JSON-Dokument

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

Beispiel

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

Prozedur DELETE_REPOSITORY

Diese Prozedur löscht das Cloud-Code-Repository, das durch das Handle-Argument repo identifiziert wird.

Syntax

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.

Beispiel

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

EXPORT_OBJECT-Prozedur

Diese Prozedur hochgeladen die DDL-Metadaten eines Datenbankobjekts in das Cloud-Code-Repository, das durch das Handleargument repo identifiziert wird. Mit dieser Prozedur können Sie die Metadatendefinition eines Datenbankobjekts in einem einzigen Schritt hochladen.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.
file_path Pfad zum Hochladen von Objektmetadaten im Repository.
object_type

Der von DBMS_METADATA unterstützte Objekttyp. Weitere Informationen finden Sie unter DBMS_METADATA: Tabelle "Objekttypen".

object_name Name des Datenbankobjekts zum Abrufen von Metadaten.
object_schema Eigentümerschema des Datenbankobjekts.
branch_name Datei in einer bestimmten Filiale speichern.
commit_details

Commit-Details als JSON-Dokument: {"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

append Metadaten-DDL an vorhandene Datei senden.

Hinweis zur Verwendung

Zur benutzerdefinierten Steuerung der Objekt-DDL können Sie DBMS_METADATA.GET_DDL zusammen mit DBMS_CLOUD_REPO.PUT_FILE verwenden. Um die Metadatendefinition des Objekts abzurufen, muss der aktuelle Benutzer berechtigt sein, die Objektmetadaten abzurufen. Informationen zu den Sicherheitsanforderungen des Packages finden Sie unter DBMS_METADATA.

Beispiel

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

Prozedur EXPORT_SCHEMA

Diese Prozedur exportiert Metadaten aller Objekte in einem Schema in die Cloud-Code-Repository-Verzweigung, die durch das Handle-Argument repo identifiziert wird.

Syntax

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

Parameter

Parameter Beschreibung
repo

Gibt das Repository Handle an.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

file_path

Gibt den Namen der Schemadatei an, die in das Repository hochgeladen werden soll.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

schema_name

Gibt den Namen des Schemas an, für das ein DDL-Skript in die Cloud-Code-Repository-Verzweigung hochgeladen werden soll.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

filter_list

Gibt das CLOB des JSON-Arrays an, das die Filterbedingungen zum Ein- oder Ausschließen der Objekte definiert, deren Metadaten exportiert werden müssen.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

JSON-Parameter für filter_list sind:
  • match_type: Gibt den Filtertyp an, der auf die Objekttypen oder Objektnamen angewendet werden soll.

    Gültige match_type-Werte sind:
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type: Gibt den Typ des Objekts an, nach dem gefiltert werden soll.

  • name: Gibt den Namen des Objekts an, nach dem gefiltert werden soll.

branch_name

Gibt den Repository-Verzweigungsnamen an.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

Wenn Sie keinen branch_name-Wert angeben, wird branch_name auf die Standard-Repository-Verzweigung gesetzt.

commit_details

Commit-Details als JSON-Dokument

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

Dieser Parameter wird für alle Cloud-Provider unterstützt.

Wenn Sie keinen commit_details-Wert angeben, wird commit_details auf die Standard-Commit-Nachricht gesetzt, die Informationen über den aktuellen Datenbanksessionbenutzer und den Datenbanknamen enthält, der den Commit ausführt.

Beispiel

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

Hinweis zur Verwendung

Um die Prozedur DBMS_CLOUD_REPO.EXPORT_SCHEMA auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_REPO besitzen.

GET_FILE Prozedur und Funktion

Die Funktion lädt den Inhalt einer Datei aus dem Cloud-Code-Repository herunter. Mit dieser Prozedur können Sie den Inhalt einer Datei aus dem Cloud-Code-Repository herunterladen und die Datei in einem Verzeichnis speichern.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.
file_path Pfad zur Datei im Repository.
directory_name Verzeichnisobjektname zum Speichern des Dateiinhaltes.
target_file_name Name der Zieldatei, um den Inhalt im Verzeichnis zu speichern.
branch_name Datei aus einer bestimmten Verzweigung abrufen.
tag_name Datei aus einem bestimmten Tag abrufen.
commit_name Datei aus einem bestimmten Commit abrufen.

Beispiel

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

Funktion INIT_AWS_REPO

Diese Funktion initialisiert ein Handle für ein AWS-Repository und gibt einen nicht transparenten Typ zurück.

Syntax

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

Parameter

Parameter Beschreibung
credential_name

Zugangsdatenobjekt, das Zugriffsschlüssel/Secret Key von AWS CodeCommit angibt.

repo_name Gibt den Repository-Namen an.
region Gibt die AWS-Region für das Repository CodeCommit an.

Beispiel

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

Funktion INIT_AZURE_REPO

Mit dieser Funktion wird ein Handle für ein Azure-Repository initialisiert und ein nicht transparenter Typ zurückgegeben. Diese Funktion wird nur für Azure-Cloud-Provider unterstützt.

Syntax

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

Parameter

Parameter Beschreibung
credential_name

Zugangsdatenobjekt, das Azure mit einem Benutzernamen und persönlichen Zugriffstoken (PAT) angibt.

repo_name Gibt den Repository-Namen an.
organization Gibt die Azure DevOps-Organisation an.
project Name des Azure-Teamprojekts.

Beispiel

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

Funktion INIT_GITHUB_REPO

Diese Funktion initialisiert ein GitHub-Repository-Handle und gibt einen nicht transparenten Typ zurück.

Syntax

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

Parameter

Parameter Beschreibung
credential_name

Zugangsdatenobjekt, das GitHub angibt.

Benutzer-E-Mail und PAT (Personal Access Token).

repo_name Gibt den Repository-Namen an.
owner Gibt den Repository-Eigentümer an.

Beispiel

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

Funktion INIT_REPO

Diese Funktion initialisiert ein Handle für ein Cloud-Code-Repository und gibt ein nicht transparentes JSON-Objekt zurück. Diese Funktion ist eine generische Schnittstelle, die ein JSON-Dokument akzeptiert und verhindert, dass Code geändert werden muss. Sie müssen ein JSON-Dokument nur ändern, wenn Sie ein Code-Repository aus einem Cloud-Code-Repository in ein anderes Cloud-Code-Repository verschieben.

Syntax

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

Parameter

JSON-Parameter Beschreibung
provider

Einer der folgenden Cloud-Code-Repository-Provider:

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name Gibt den Repository-Namen an. DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner GitHub Repository-Eigentümer. DBMS_CLOUD_REPO.PARAM_OWNER

Dieser Parameter gilt nur für den Cloud-Provider GitHub.

region AWS-Repository-Region DBMS_CLOUD_REPO_PARAM_REGION

Dieser Parameter gilt nur für den AWS-Cloud-Provider.

organization DBMS_CLOUD_REPO_PARAM_ORGANIZATION von Azure

Dieser Parameter gilt nur für Azure-Cloud-Provider.

project Azure-Teamprojekt DBMS_CLOUD_REPO_PARAM_PROJECT

Dieser Parameter gilt nur für Azure-Cloud-Provider.

Beispiel

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

Prozedur INSTALL_FILE

Diese Prozedur installiert SQL-Anweisungen aus einer Datei im Cloud-Code-Repository, das durch das Handle- Argument repo identifiziert wird.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.
file_path Pfad zur Datei im Repository.
branch_name Verzweigung zur Installation der Datei aus einer bestimmten Filiale.
tag_name Tag zur Installation der Datei aus einem bestimmten Tag.
commit_name Commit-ID zur Installation der Datei aus einem bestimmten Commit.
stop_on_error Ausführung der SQL-Anweisungen beim ersten Fehler stoppen.

Hinweise zur Verwendung

  • Sie können SQL-Anweisungen mit verschachteltem SQL aus einer Cloud-Code-Repository-Datei wie folgt installieren:

    • @: Umfasst eine SQL-Datei mit einem relativen Pfad zum ROOT des Repositorys.

    • @@: Umfasst eine SQL-Datei mit einem Pfad relativ zur aktuellen Datei.

  • Die Skripte sind als Schema-Installationsskripte und nicht als generische SQL-Skripte vorgesehen:

    • Skripte dürfen keine clientspezifischen SQL*Plus-Befehle enthalten.
    • Skripte dürfen keine Bind-Variablen oder Parameterskripte enthalten.
    • SQL-Anweisungen müssen mit einem Slash in einer neuen Zeile (/) beendet werden.
    • Skripte können DDL-, DML- und PLSQL-Anweisungen enthalten, direkte SELECT-Anweisungen werden jedoch nicht unterstützt. Die Verwendung von SELECT in einem PL/SQL-Block wird unterstützt.

    SQL-Anweisung, die mit EXECUTE IMMEDIATE ausgeführt werden kann, funktioniert, sofern sie keine Bind-Variablen oder Definitionen enthält.

Beispiel

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

Prozedur INSTALL_SQL

Diese Prozedur installiert SQL-Anweisungen aus einem Puffer, der als Eingabe angegeben wird.

Syntax

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

Parameter

Parameter Beschreibungen
content Das CLOB, das die auszuführenden SQL-Anweisungen enthält.
stop_on_error Ausführung der SQL-Anweisungen beim ersten Fehler stoppen.

Hinweise zur Verwendung

  • Die Skripte sind als Schema-Installationsskripte und nicht als generische SQL-Skripte vorgesehen:

    • Skripte dürfen keine clientspezifischen SQL*Plus-Befehle enthalten.
    • Skripte dürfen keine Bind-Variablen oder Parameterskripte enthalten.
    • SQL-Anweisungen müssen mit einem Slash in einer neuen Zeile (/) beendet werden.
    • Skripte können DDL-, DML- und PLSQL-Anweisungen enthalten, direkte SELECT-Anweisungen werden jedoch nicht unterstützt. Die Verwendung von SELECT in einem PL/SQL-Block wird unterstützt.

    SQL-Anweisung, die mit EXECUTE IMMEDIATE ausgeführt werden kann, funktioniert, sofern sie keine Bind-Variablen oder Definitionen enthält.

Beispiel

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

Funktion LIST_BRANCHES

Diese Funktion listet Verzweigungen in der Cloud-Code-Repository-Verzweigung auf, die durch das Handle-Argument repo identifiziert werden.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

Beispiel

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

Hinweise zur Verwendung

  • Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES gibt die Spalte name zurück, die den Namen der Cloud-Code-Repository-Verzweigung angibt.

Funktion LIST_COMMITS

Diese Funktion listet Commits in der Cloud Code Repository-Verzweigung auf, die durch das Handle-Argument repo identifiziert wird.

Syntax

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;

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

branch_name Führt Commits aus einer bestimmten Filiale auf.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

Wenn Sie keinen branch_name-Wert angeben, wird branch_name auf main gesetzt.

file_path Listet Dateien unter dem angegebenen Unterordnerpfad im Repository auf.

Dieser Parameter wird nur für Git- und Azure-Cloud-Provider unterstützt.

Wenn Sie keinen file_path-Wert angeben, wird file_path auf einen NULL-Wert gesetzt.

commit_id Listet Dateien auf, die mit der angegebenen sha/id beginnen

Dieser Parameter wird für alle Cloud-Provider unterstützt.

Wenn Sie keinen commit_id-Wert angeben, wird commit_id auf einen NULL-Wert gesetzt.

Beispiel

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

Beispiel

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

Hinweise zur Verwendung

  • Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp list_commit_ret_tab.

  • DBMS_CLOUD_REPO.LIST_COMMITS gibt die Spalte commit_id zurück.

LIST_FILES-Funktion

Diese Funktion lädt eine Datei aus dem Cloud-Code-Repository herunter. Auf den Dateiinhalt können Sie optional über eine bestimmte Verzweigung, ein bestimmtes Tag oder einen bestimmten Commit-Namen zugreifen. Standardmäßig wird über die Standard-Repository-Verzweigung auf die Datei zugegriffen. Die Ergebnisse umfassen die Dateinamen und zusätzliche Metadaten zu den Dateien.

Syntax

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;

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.
path Listet Dateien unter dem angegebenen Unterordnerpfad im Repository auf.
branch_name Listet Dateien aus einer bestimmten Verzweigung auf.
tag_name Dateien aus einem bestimmten Tag auflisten.
commit_name Listet Dateien aus einem bestimmten Commit auf.

Hinweise zur Verwendung

  • Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp list_file_ret_tab.

  • DBMS_CLOUD_REPO.LIST_FILES gibt folgende Spalten zurück: id, name, url und bytes.

Beispiel

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

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

Funktion LIST_REPOSITORIES

Diese Funktion listet alle Cloud-Code-Repositorys auf, die mit dem Handle-argument repo identifiziert werden. Wenn für das repo-Handle ein Repository-Name angegeben ist, beschränkt die Funktion die Liste nicht auf den angegebenen Repository-Namen. Sie listet alle Repositorys auf, auf die der Benutzer zugreifen kann.

Syntax

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

Parameter

Parameter Beschreibung
repo

Gibt das Repository Handle an. Dieser Parameter wird von allen Cloud-Providern unterstützt.

Hinweise zur Verwendung

  • Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp list_repo_ret_tab.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES gibt folgende Spalten zurück: id, name, owner, description, private, url, bytes, created und last_modified.

Beispiel

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

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

Prozedur MERGE_BRANCH

Diese Prozedur führt eine Repository-Verzweigung in einer anderen angegebenen Verzweigung im Cloud-Code-Repository zusammen, die durch das Handle-Argument repo identifiziert wird. Die Prozedur MERGE_BRANCH wird in Azure derzeit nicht unterstützt.

Syntax

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

Parameter

Parameter Beschreibung
repo

Gibt das Repository Handle an.

Dieser Parameter ist obligatorisch und wird für GITHUB- und AWS-Cloud-Provider unterstützt.

branch_name

Gibt den Namen der Git-Verzweigung an, die zusammengeführt werden soll.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

target_branch_name

Gibt den Namen der Zielverzweigung an, die zusammengeführt werden soll.

Dieser Parameter ist erforderlich und wird für alle Cloud-Provider unterstützt.

commit_details

Commit-Details als JSON-Dokument

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

Wenn Sie keinen commit_details-Wert angeben, wird commit_details auf die Standard-Commit-Nachricht gesetzt, die Informationen über den aktuellen Datenbanksessionbenutzer und den Datenbanknamen enthält, der den Commit ausführt.

Beispiel

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

Hinweis zur Verwendung

Um die Prozedur DBMS_CLOUD_REPO.MERGE_BRANCH auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_REPO besitzen.

Prozedur PUT_FILE

Diese Prozedur lädt eine Datei in das Cloud-Code-Repository hoch, das durch das Handle- Argument repo identifiziert wird. Die Prozedur wird überladen, um entweder das Hochladen einer Datei aus einem Verzeichnisobjekt oder das Hochladen des Inhalts aus einem BLOB in die Repository-Datei zu unterstützen.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.
file_path Pfad zum Hochladen der Datei im Repository.
contents BLOB mit dem Dateiinhalt.
directory_name Verzeichnisobjektname mit dem Dateinamen.
source_file_name Name der Quelldatei, die in das Repository hochgeladen werden soll.
branch_name Datei in einer bestimmten Filiale speichern.
commit_details

Commit-Details als JSON-Dokument:

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

Beispiel

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

Prozedur UPDATE_REPOSITORY

Diese Prozedur aktualisiert ein Cloud-Code-Repository, das mit dem Handle- Argument repo identifiziert wird. UPDATE_REPOSITORY unterstützt die Aktualisierung des Namens, der Beschreibung oder des privaten Sichtbarkeitsstatus, wie vom Cloudcode-Repository unterstützt.

Syntax

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

Parameter

Parameter Beschreibung
repo Gibt das Repository Handle an.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

new_name Neuer Name für das Repository.

Dieser Parameter wird für alle Cloud-Provider unterstützt.

description Eine kurze Textbeschreibung für das Repository.

Dieser Parameter wird für GITHUB- und AWS-Cloud-Provider unterstützt.

private

Das Repository ist privat und kann nur mit gültigen Zugangsdaten aufgerufen werden.

Dieser Parameter wird für den GITHUB-Cloud-Provider unterstützt.

Beispiel

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