DBMS_CLOUD_REPO-Package

Das DBMS_CLOUD_REPO-Package bietet die Verwendung und Verwaltung von in der Cloud gehosteten Code-Repositorys aus Oracle Database. Unterstützte Cloud-Code-Repositorys umfassen GitHub, AWS CodeCommit und Azure-Repositorys.

DBMS_CLOUD_REPO - Überblick

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

Dieses Package ist eine einzige Schnittstelle für den Zugriff auf Multicloud-Code-Repositorys und ermöglicht es Ihnen, SQL-Dateien in Git-Repositorys hochzuladen oder SQL-Skripte direkt aus Cloud-Code-Repositorys zu installieren. Mit diesem Package können Sie auch ein Cloud Code Repository verwenden, um Codeversionen für SQL-Skripte zu verwalten und Anwendungscode aus Git-Repositorys zu installieren oder zu patchen.

Konzepte

  • Git-Versionskontrollsystem: Git ist eine Software zum Verfolgen von Änderungen in einer beliebigen Gruppe von Dateien, die normalerweise zur Koordination der Arbeit zwischen Programmierern verwendet wird, die während der Softwareentwicklung gemeinsam Quellcode entwickeln. Zu seinen Zielen gehören Geschwindigkeit, Datenintegrität und Unterstützung für verteilte, nicht-lineare Workflows.

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

Architektur

Das Package DBMS_CLOUD_REPO bietet vier Funktionsbereiche:
  • Repository-Initialisierung mit generischem Cloud-Code-Repository-Handle

    • Code-Repository GitHub initialisieren

    • AWS CodeCommit Code Repository initialisieren

    • Azure-Repository für Repositorys initialisieren

  • Repository-Verwaltungsvorgänge

    • Repository erstellen

    • Repository aktualisieren

    • Repositorys aufliste

    • Repository löschen

  • Vorgänge zur Verwaltung von Repository-Dateien

    • Laden Sie eine Datei aus Oracle Database in das Code Repository hoch.

    • Laden Sie eine Datei aus dem Code Repository in Oracle Database herunter.

    • Dateien aus Code-Repository löschen.

    • Dateien aus Code Repository auflisten.

  • SQL-Installationsvorgänge

    • Datenbankobjekt-Metadaten-DDL in Repository exportieren.
    • Installieren Sie SQL-Anweisungen aus einer Datei im Code Repository in Oracle Database.

    • Installieren Sie SQL-Anweisungen aus einem Puffer.

DBMS_CLOUD_REPO Datenstrukturen

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

REPO JSON-Objekt

Eine DBMS_CLOUD_REPO-REPO ist ein undurchsichtiges 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 undurchsichtige Objekt stellt sicher, dass DBMS_CLOUD_REPO-Prozeduren und -Funktionen 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 DBMS_CLOUD_REPO-Packageunterprogramme können in vier Kategorien gruppiert 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 AWS-Repository-Handle und gibt einen undurchsichtigen Typ zurück.

Funktion INIT_AZURE_REPO

Diese Funktion initialisiert ein Azure-Repository-Handle und gibt einen undurchsichtigen Typ zurück.

Funktion INIT_GITHUB_REPO

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

Funktion INIT_REPO

Diese Funktion initialisiert ein Cloud Code Repository-Handle und gibt ein undurchsichtiges JSON-Objekt zurück.

DBMS_CLOUD_REPO Repository-Verwaltungsvorgänge

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

Unterprogramm Beschreibung

Prozedur CREATE_REPOSITORY

Mit dieser Prozedur wird ein Cloudcode-Repository erstellt, das durch das repo-Handle-Argument identifiziert wird.

Prozedur DELETE_REPOSITORY

Mit dieser Prozedur wird das durch das Handle-Argument repo identifizierte Cloud-Code-Repository gelöscht.

Funktion LIST_REPOSITORIES

Diese Funktion listet alle Cloudcode-Repositorys auf, die durch das Handle-Argument repo identifiziert werden.

Prozedur UPDATE_REPOSITORY

Mit dieser Prozedur wird ein Cloudcode-Repository aktualisiert, das durch das repo-Handle-Argument 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 Vorgänge zur Verwaltung von Repository-Verzweigungen

Listet die Unterprogramme für Vorgänge zur Verwaltung von Repository-Verzweigungen im Package DBMS_CLOUD_REPO auf.

Unterprogramm Beschreibung

Prozedur CREATE_BRANCH

Mit dieser Prozedur wird eine Verzweigung in einem Cloudcode-Repository erstellt, das durch das Handle-Argument repo identifiziert wird.

Prozedur DELETE_BRANCH

Mit dieser Prozedur wird eine Verzweigung in einem Cloudcode-Repository gelöscht, das durch das Handle-Argument repo identifiziert wird.

Funktion LIST_BRANCHES

Diese Funktion listet alle Cloudcode-Repository-Verzweigungen auf, die durch das Handle-Argument repo identifiziert werden.

Funktion LIST_COMMITS

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

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

Mit dieser Prozedur wird eine Datei aus dem Cloudcode-Repository gelöscht, das durch das Handle-Argument repo identifiziert wird.

GET_FILE Prozedur und Funktion

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

Funktion LIST_FILES

Diese Funktion lädt eine Datei aus dem Cloudcode-Repository herunter. Optional kann über einen bestimmten Verzweigungs-, Tag- oder Commit-Namen auf den Dateiinhalt zugegriffen werden. Standardmäßig wird über die Standard-Repository-Verzweigung auf die Datei zugegriffen.

Prozedur PUT_FILE

Mit dieser Prozedur wird eine Datei in das Cloudcode-Repository hochgeladen, das durch das Handle-Argument repo identifiziert wird. Die Prozedur wird überlastet, um das Hochladen einer Datei aus einem Directory-Objekt oder das Hochladen der Inhalte 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

Prozedur EXPORT_OBJECT

Mit dieser Prozedur werden die DDL-Metadaten eines Datenbankobjekts in das Cloudcode-Repository hochgeladen, das durch das Handle-Argument 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

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

Prozedur INSTALL_SQL

Diese Prozedur installiert SQL-Anweisungen aus einem als Eingabe angegebenen Puffer.

Zusammenfassung der DBMS_CLOUD_REPO-Unterprogramme

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

Prozedur CREATE_BRANCH

Mit dieser Prozedur wird eine Verzweigung im Cloudcode-Repository erstellt, 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 obligatorisch und wird für alle Cloud-Provider unterstützt.

branch_name

Gibt den Namen der Repository-Verzweigung an.

Dieser Parameter ist obligatorisch 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 Cloudcode-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 über die Berechtigung EXECUTE für DBMS_CLOUD_REPO verfügen.

Prozedur CREATE_REPOSITORY

Mit dieser Prozedur wird ein Cloudcode-Repository erstellt, das durch das repo-Handle-Argument 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

Repository ist privat und nur mit gültigen Zugangsdaten zugänglich

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

Beispiel

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

Prozedur DELETE_BRANCH

Mit dieser Prozedur wird eine Verzweigung im Cloudcode-Repository gelöscht, 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 obligatorisch und wird für alle Cloud-Provider unterstützt.

branch_name Verzweigung aus einem bestimmten Repository löschen.

Dieser Parameter ist obligatorisch 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 über die Berechtigung EXECUTE für DBMS_CLOUD_REPO verfügen.

Prozedur DELETE_FILE

Mit dieser Prozedur wird eine Datei aus dem Cloudcode-Repository gelöscht, 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 Verzweigung 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

Mit dieser Prozedur wird das durch das Handle-Argument repo identifizierte Cloud-Code-Repository gelöscht.

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

Prozedur EXPORT_OBJECT

Mit dieser Prozedur werden die DDL-Metadaten eines Datenbankobjekts in das Cloudcode-Repository hochgeladen, das durch das Handle-Argument 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 Dateipfad zum Hochladen von Objektmetadaten im Repository.
object_type

Von DBMS_METADATA unterstützter Objekttyp. Weitere Informationen finden Sie unter DBMS_METADATA: Tabelle "Objekttypen".

object_name Name des Datenbankobjekts, das Metadaten abrufen soll.
object_schema Eigentümerschema des Datenbankobjekts.
branch_name Datei in eine bestimmte Verzweigung einfügen.
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 anhängen.

Hinweis zur Verwendung

Für die benutzerdefinierte Kontrolle 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 obligatorisch 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 obligatorisch 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 Cloudcode-Repository-Verzweigung hochgeladen werden soll.

Dieser Parameter ist obligatorisch 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 Objekttyp an, nach dem gefiltert werden soll.

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

branch_name

Gibt den Namen der Repository-Verzweigung 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-Meldung gesetzt, die Informationen zum aktuellen Datenbanksessionbenutzer und zum 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 über die Berechtigung EXECUTE für DBMS_CLOUD_REPO verfügen.

GET_FILE Prozedur und Funktion

Die Funktion lädt den Inhalt einer Datei aus dem Cloudcode-Repository herunter. Mit diesem Verfahren 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 Dateipfad im Repository.
directory_name Verzeichnisobjektname, um den Dateiinhalt zu speichern.
target_file_name Zieldateiname zum Speichern des Inhalts im Verzeichnis.
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 AWS-Repository-Handle und gibt einen undurchsichtigen 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 AWS CodeCommit accesskey/secretkey 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

Diese Funktion initialisiert ein Azure-Repository-Handle und gibt einen undurchsichtigen Typ zurück. 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 einem persönlichen Zugriffstoken (PAT) angibt.

repo_name Gibt den Repository-Namen an.
organization Gibt die Azure-Organisation DevOps an.
project Azure-Teamprojektname.

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 Repository-Handle GitHub und gibt einen undurchsichtigen 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 persönliches Zugriffstoken (PAT).

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 Cloud Code Repository-Handle und gibt ein undurchsichtiges JSON-Objekt zurück. Diese Funktion ist eine generische Schnittstelle, mit der ein JSON-Dokument akzeptiert wird. Sie müssen den Code nicht ändern. Sie müssen nur ein JSON-Dokument ändern, wenn Sie ein Code-Repository von 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

Cloud-Code-Repository-Provider von:

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 AWS-Cloud-Provider.

organization Azure-Organisation DBMS_CLOUD_REPO_PARAM_ORGANIZATION

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

Mit dieser Prozedur werden SQL-Anweisungen aus einer Datei im Cloud Code-Repository installiert, 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 Dateipfad im Repository.
branch_name Verzweigung zum Installieren der Datei aus einer bestimmten Verzweigung.
tag_name Tag für die Installation der Datei von einem bestimmten Tag.
commit_name Commit-ID zur Installation der Datei von einem bestimmten Commit.
stop_on_error Stoppen Sie die Ausführung der SQL-Anweisungen beim ersten Fehler.

Hinweise zur Verwendung

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

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

    • @@: enthält eine SQL-Datei mit einem Pfad relativ zur aktuellen Datei.

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

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

    Jede SQL-Anweisung, die mit EXECUTE IMMEDIATE ausgeführt werden kann, funktioniert, wenn 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 als Eingabe angegebenen Puffer.

Syntax

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

Parameter

Parameter Beschreibungen
content Das CLOB mit den auszuführenden SQL-Anweisungen.
stop_on_error Stoppen Sie die Ausführung der SQL-Anweisungen beim ersten Fehler.

Hinweise zur Verwendung

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

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

    Jede SQL-Anweisung, die mit EXECUTE IMMEDIATE ausgeführt werden kann, funktioniert, wenn 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 Cloudcode-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 obligatorisch 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 Pipelined-Tabellenfunktion mit dem Rückgabetyp list_branch_ret_tab.

  • DBMS_CLOUD_REPO.LIST_BRANCHES gibt die Spalte name zurück, die den Namen der Cloudcode-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 obligatorisch und wird für alle Cloud-Provider unterstützt.

branch_name Listet Commits aus einer bestimmten Verzweigung 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 Dateien unter dem angegebenen Unterordnerpfad im Repository auflisten.

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 ab dem angegebenen sha/id auf

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 Pipelined-Tabellenfunktion mit dem Rückgabetyp list_commit_ret_tab.

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

Funktion LIST_FILES

Diese Funktion lädt eine Datei aus dem Cloudcode-Repository herunter. Optional kann über einen bestimmten Verzweigungs-, Tag- oder Commit-Namen auf den Dateiinhalt zugegriffen werden. 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 Dateien unter dem angegebenen Unterordnerpfad im Repository auflisten.
branch_name Dateien aus einer bestimmten Verzweigung auflisten.
tag_name Listen Sie Dateien aus einem bestimmten Tag auf.
commit_name Dateien aus einem bestimmten Commit auflisten.

Hinweise zur Verwendung

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

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

Beispiel

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

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

Funktion LIST_REPOSITORIES

Diese Funktion listet alle Cloudcode-Repositorys auf, die durch das Handle-Argument repo identifiziert werden. Wenn für das repo-Handle ein Repository-Name angegeben ist, beschränkt die Funktion die Auflistung 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 Pipelined-Tabellenfunktion mit dem Rückgabetyp list_repo_ret_tab.

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

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 mit einer anderen angegebenen Verzweigung im Cloudcode-Repository zusammen, das durch das Handle-Argument repo identifiziert wird. Die Prozedur MERGE_BRANCH wird derzeit in Azure 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 Git-Verzweigungsnamen an, der zusammengeführt werden soll.

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

target_branch_name

Gibt den Zielverzweigungsnamen an, in den die Zusammenführung erfolgen soll.

Dieser Parameter ist obligatorisch 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-Meldung gesetzt, die Informationen zum aktuellen Datenbanksessionbenutzer und zum 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 über die Berechtigung EXECUTE für DBMS_CLOUD_REPO verfügen.

Prozedur PUT_FILE

Mit dieser Prozedur wird eine Datei in das Cloudcode-Repository hochgeladen, das durch das Handle-Argument repo identifiziert wird. Die Prozedur wird überlastet, um das Hochladen einer Datei aus einem Directory-Objekt 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 Dateipfad zum Hochladen der Datei im Repository.
contents BLOB mit dem Dateiinhalt.
directory_name Verzeichnisobjektname mit dem Dateinamen.
source_file_name Quelldateiname für den Upload in das Repository.
branch_name Datei in eine bestimmte Verzweigung einfügen.
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

Mit dieser Prozedur wird ein Cloudcode-Repository aktualisiert, das durch das repo-Handle-Argument 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 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

Repository ist privat und nur mit gültigen Zugangsdaten zugänglich.

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

Beispiel

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