Zusammenfassung der DBMS_CLOUD_REPO-Unterprogramme

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

Verwandte Themen

Voraussetzungen

Als Entwickler können Sie DBMS_CLOUD-Prozeduren mit Autonomous Databases verwenden, die in Oracle Public Cloud, Multicloud oder Exadata Cloud@Customer bereitgestellt sind.

Je nach Deployment-Auswahl müssen die folgenden Voraussetzungen erfüllt sein, um die DBMS_CLOUD-Prozeduren mit den Serviceprovidern Amazon S3, Azure Blob Storage und Google Cloud Storage zu verwenden.

Eine ausgehende Konnektivität muss von Ihrem Flottenadministrator mit einem NAT-Gateway konfiguriert worden sein, wie unten beschrieben:
  • Erstellen Sie ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN), in dem sich Ihre Autonomous Database-Ressourcen befinden, indem Sie die Anweisungen unter NAT-Gateway erstellen in der Oracle Cloud Infrastructure-Dokumentation befolgen.
  • Nachdem Sie das NAT-Gateway erstellt haben, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich Autonomous Database-Ressourcen befinden. So können diese Ressourcen mit dem Gateway einen Public Key aus Ihrer Azure AD-Instanz abrufen:
    1. Gehen Sie zur Seite Subnetzdetails für das Subnetz.
    2. Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzes, um die Seite Routentabellendetails anzuzeigen.
    3. Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
      • Zielort: 0.0.0.0/0
      • Zieltyp: NAT-Gateway
      • Ziel: Der Name des NAT-Gateway, das Sie gerade im VCN erstellt haben

      Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.

    4. Zurück zur Seite Subnetzdetails für das Subnetz.
    5. Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
    6. Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
    7. Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
      • Zieltyp: CIDR
      • Zielort: 0.0.0.0/0
      • IP-Protokoll: TCP
      • Quellportbereich: 443
      • Ziel-Portbereich: Alle

      Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.

Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.

Diese Einstellungen werden vom Flottenadministrator beim Erstellen der Exadata Cloud@Customer-Infrastruktur definiert, wie unter Exadata Database Service on Cloud@Customer mit der Konsole bereitstellen beschrieben.

Hinweis:

Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.

Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.

Prozedur CREATE_BRANCH

Diese Prozedur erstellt eine Verzweigung im Cloud-Code-Repository, die 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 Repository-Verzweigungsnamen 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 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 Cloud-Code-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 Cloudcode-Repository, die 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 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 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

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

Prozedur EXPORT_OBJECT

Diese Prozedur lädt die DDL-Metadaten eines Datenbankobjekts in das Cloud-Code-Repository hoch, 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 für den Upload von Objektmetadaten im Repository.
object_type

Von DBMS_METADATA unterstützter Objekttyp. Weitere Informationen finden Sie unter DBMS_METADATA: Tabelle mit Objekttypen in Oracle Database 19c PL/SQL-Packages und Typenreferenz oder Oracle Database 23ai PL/SQL-Packages und Typenreferenz.

object_name Name des Datenbankobjekts zum Abrufen von Metadaten.
object_schema Eigentümerschema des Datenbankobjekts.
branch_name Datei in einer bestimmten Verzweigung ablegen.
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 benutzerdefinierte Steuerelemente für die 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 in Oracle Database 19c PL/SQL-Packages und Typenreferenz oder Oracle Database 23ai PL/SQL-Packages und Typenreferenz.

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 Verzweigung "Cloud-Code-Repository" 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 definiert, um die Objekte einzuschließen oder auszuschließen, 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.

Prozedur und Funktion GET_FILE

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 Dateipfad im Repository.
directory_name Verzeichnisobjektname zum Speichern des Dateiinhalts.
target_file_name Zieldatei zum Speichern des Verzeichnisses.
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 CodeCommit-Repository 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 Handle für ein Azure-Repository und gibt einen nicht transparenten 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 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 Handle für ein GitHub-Repository 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 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 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 Cloudcode-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 Eigentümer des GitHub-Repositorys. DBMS_CLOUD_REPO.PARAM_OWNER

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

region AWS-Repository-Region DBMS_CLOUD_REPO_PARAM_REGION

Dieser Parameter gilt nur für den 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

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 Dateipfad im Repository.
branch_name Verzweigung zur Installation der Datei aus einer bestimmten Verzweigung.
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.

Verwendungshinweise

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

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

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

    • Skripte dürfen keine clientspezifischen SQL*Plus-Befehle enthalten.
    • Skripte dürfen keine Bind-Variablen oder parametrisierten Skripte enthalten.
    • SQL-Anweisungen müssen mit einem Schrägstrich 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-Anweisungen, die mit EXECUTE IMMEDIATE ausgeführt werden können, funktionieren, solange sie keine Bind-Variablen oder Definitionen enthalten.

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, das die auszuführenden SQL-Anweisungen enthält.
stop_on_error Ausführung der SQL-Anweisungen beim ersten Fehler stoppen.

Verwendungshinweise

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

    • Skripte dürfen keine clientspezifischen SQL*Plus-Befehle enthalten.
    • Skripte dürfen keine Bind-Variablen oder parametrisierten Skripte enthalten.
    • SQL-Anweisungen müssen mit einem Schrägstrich 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-Anweisungen, die mit EXECUTE IMMEDIATE ausgeführt werden können, funktionieren, solange sie keine Bind-Variablen oder Definitionen enthalten.

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 obligatorisch und wird für alle Cloud-Provider unterstützt.

Beispiel

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

Verwendungshinweise

  • Dies ist eine Pipelintabellenfunktion mit dem Typ 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 obligatorisch und wird für alle Cloud-Provider unterstützt.

branch_name Listet 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-Cloudprovider unterstützt.

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

commit_id Dateien ab dem angegebenen sha/id auflisten

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

Verwendungshinweise

  • Dies ist eine Pipelintabellenfunktion mit dem Typ 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 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 Listet Dateien aus einem bestimmten Tag auf.
commit_name Listet Dateien aus einem bestimmten Commit auf.

Verwendungshinweise

  • Dies ist eine Pipelinetabellenfunktion 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 durch das Handle-Argument repo identifiziert werden. Die Ergebnisse umfassen die Repository-Namen und zusätzliche Metadaten zu den Repositorys.

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.

description Eine kurze Textbeschreibung für das Repository.

Dieser Parameter wird von den GITHUB- und AWS-Cloud-Providern 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.

Verwendungshinweise

  • Dies ist eine Pipelinetabellenfunktion 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 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 Namen der Zielverzweigung an, in der 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-Nachricht gesetzt, die Informationen zum 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 das Hochladen einer Datei aus einem Verzeichnisobjekt oder das Laden 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 Name der Quelldatei, die in das Repository hochgeladen werden soll.
branch_name Datei in einer bestimmten Verzweigung ablegen.
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 Cloud-Code-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;
/