Dateien mit einer autonomen KI-Datenbank in einem Cloud-Code-Repository verwalten und speichern

Autonomous AI Database bietet Routinen zum Verwalten und Speichern von Dateien in Cloud Code-(Git-)Repositorys. Die unterstützten Cloud-Code-Repositorys sind: GitHub, AWS CodeCommit und Azure Repos.

Cloud-Code-Repositorys mit autonomer KI-Datenbank

Das Package DBMS_CLOUD_REPO stellt eine einzelne Schnittstelle für den Zugriff auf ein Cloudcode-Repository aus einer autonomen KI-Datenbank bereit.

Die unterstützten Cloudcode-Repositorys bieten die folgenden Features:

Die DBMS_CLOUD_REPO-APIs verwenden ein Repository-Handle (REPO-Objekt). Das Repository-Handle 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 Ihren Code nicht ändern, wenn Sie von einem Cloud Code Repository-Provider zu einem anderen Cloud Code Repository migrieren.

Die autonome KI-Datenbank bietet Folgendes, damit Sie mit Cloud-Code-Repositorys arbeiten können:

Cloudcode-Repository initialisieren

Die Initialisierungsroutinen DBMS_CLOUD_REPO initialisieren ein Cloud-Code-Repository. Nachdem Sie ein Cloud Code Repository-Handle erhalten haben, greifen Sie mit dem Handle auf das Cloud Code Repository zu.

So initialisieren Sie ein Cloud Code Repository:

  1. Erstellen Sie Zugangsdaten für den Zugriff auf das Cloud-Code-Repository.

    Informationen zum Erstellen von Zugangsdaten finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Je nach Repository, GitHub, Azure Repos oder AWS CodeCommit, rufen Sie DBMS_CLOUD_REPO.INIT_REPO mit den Parametern für das jeweilige Repository auf, um ein Repository-Handle abzurufen.

    Die folgenden Beispiele enthalten Beispiele für jedes unterstützte Cloud Code Repository.

    • Initialisierung von GitHub:

      DEFINE repo_name='test_repo';
      DEFINE cred_name='GITHUB_CRED';
      VAR repo clob
      BEGIN
        :repo := DBMS_CLOUD_REPO.INIT_REPO(
                      params => JSON_OBJECT('provider' value 'github',
                                            'repo_name' value '&repo_name',
                                            'credential_name' value '&cred_name',
                                            'owner'           value '<myuser>')
                );
      END;
      /
      
    • Azure-Repository-Initialisierung:

      DEFINE repo_name='test_repo';
      DEFINE cred_name='AZURE_REPO_CRED';
      VAR repo clob
      BEGIN
        :repo := DBMS_CLOUD_REPO.INIT_REPO(
                      params => JSON_OBJECT('provider' value 'azure',
                                            'repo_name' value '&repo_name',
                                            'credential_name' value '&cred_name',
                                            'organization' value '<myorg>',
                                            'project' value '<myproject>')
                );
      END;
      /
      
    • AWS CodeCommit-Initialisierung:

      DEFINE repo_name='test_repo';
      DEFINE cred_name='AWS_REPO_CRED';
      VAR repo clob
      BEGIN
        :repo := DBMS_CLOUD_REPO.INIT_REPO(
                      params => JSON_OBJECT('provider' value 'aws',
                                            'repo_name' value '&repo_name',
                                            'credential_name' value '&cred_name',
                                            'region' value 'us-east-1')
                );
      END;
      /
      

Weitere Informationen zu den Initialisierungsfunktionen finden Sie unter DBMS_CLOUD_REPO Initialization Operations.

Cloudcode-Repository erstellen und verwalten

Mit den DBMS_CLOUD_REPO-Verwaltungsroutinen können Sie ein Cloudcode-Repository verwalten, indem Sie ein Repository erstellen, auflisten, aktualisieren oder löschen.

Rufen Sie zunächst ein Cloud Code Repository-Handle ab, um Zugriff auf ein Repository zu gewähren. Weitere Informationen finden Sie unter Cloud-Code-Repository initialisieren.

  1. So erstellen Sie ein Repository:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.CREATE_REPOSITORY(
             repo => :repo,
             description => 'test repo'
       );
     END;
     /
    
  2. So aktualisieren Sie ein Repository:

     VAR repo clob
     DEFINE repo_name='test_repo';
     BEGIN
       DBMS_CLOUD_REPO.UPDATE_REPOSITORY(
             repo => :repo,
             new_name => '&repo_name' || '_new'
       );
     END;
     /
    
  3. So listen Sie Repositorys auf:

     col id format a30
     col name format a10
     col description format a15
     select id, name, bytes, private, description from
       DBMS_CLOUD_REPO.LIST_REPOSITORIES(:repo);
    
  4. So löschen Sie ein Repository:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.DELETE_REPOSITORY(
             repo => :repo
       );
     END;
     /
    

Weitere Informationen finden Sie unter DBMS_CLOUD_REPO Repository Management Operations.

Filialen in einem Cloudcode-Repository erstellen und verwalten

Mit den DBMS_CLOUD_REPO-Verwaltungsroutinen können Sie Cloud Code Repository-Verzweigungen verwalten, indem Sie Verzweigungen in einem Repository erstellen, auflisten, zusammenführen oder löschen.

Um Cloud Code Repository-Verzweigungsverwaltungsvorgänge ausführen zu können, müssen Sie zuerst folgende Schritte ausführen:

  1. So erstellen Sie eine Verzweigung in einem Cloudcode-Repository:

     BEGIN
       DBMS_CLOUD_REPO.CREATE_BRANCH (
         repo            => l_repo,
         branch_name     => 'test_branch',
         parent_branch   => 'main'
         );
     END;
     /
    
  2. So löschen Sie eine Verzweigung in einem Cloudcode-Repository:

     BEGIN
       DBMS_CLOUD_REPO.DELETE_BRANCH (
           repo        => l_repo,
           branch_name => 'test_branch'
       );
     END;
     /
    
  3. So führen Sie eine Verzweigung in einer anderen Verzweigung in einem Cloud Code Repository zusammen:

     BEGIN
       DBMS_CLOUD_REPO.MERGE_BRANCH (
         repo               => l_repo,
         branch_name        => 'test_branch',
         target_branch_name => 'main'
         );
     END;
     /
    
  4. So listen Sie Verzweigungen in einem Cloudcode-Repository auf:

     SELECT * FROM DBMS_CLOUD_REPO.LIST_BRANCHES (repo => l_repo);
    
  5. Sie können Commits in einer Verzweigung in Cloud Code Repository basierend auf folgenden Elementen auflisten:

    • Repository

    • Niederlassung

    • Der Dateipfad der Verzweigung

    • SHA/commit_id

      Hinweis: SHA ist eine aus Hexadezimalzeichen (0-9 und a-f) zusammengesetzte Prüfsumme mit 40 Zeichen.

    So listen Sie Commits basierend auf dem Repository auf:

     SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS (
         repo => :repo);
    

    So listen Sie Commits basierend auf dem Repository, der commit_id und dem Dateipfad der Verzweigung auf:

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

    So listen Sie Commits auf, die auf dem Repository und dem Dateipfad der Verzweigung basieren:

     SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS (
         repo        => :repo,
         branch_name => 'branch1');
    

    So listen Sie Commits auf, die auf dem Repository, Branch_name und Dateipfad der Verzweigung basieren:

     SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS (
         repo         => :repo,
         branch_name  => 'branch1',
         file_path    => 'sub_dir/test11.sql');
    

    So listen Sie Commits auf, die auf dem Repository und der commit_id der Verzweigung basieren:

     SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS (
         repo => :repo,
         commit_id =>'66dd2b23b74cd0afabd11af66c6aa9c550540ba6');
    

Weitere Informationen finden Sie unter DBMS_CLOUD_REPO Repository Branch Management Operations.

Schemaobjekte in die Cloudcode-Repository-Verzweigung exportieren

Mit der Verwaltungsroutine DBMS_CLOUD_REPO können Sie Metadaten der Objekte in einem Schema in die Cloudcode-Repository-Verzweigung exportieren. Sie können die Liste anhand der Objektnamen oder Objekttypen filtern.

Um Schemametadaten zu exportieren, müssen Sie zuerst:

Verwenden Sie die Prozedur EXPORT_SCHEMA, um Metadaten der Objekte in Ihrem Schema in eine Cloud Code Repository-Verzweigung zu exportieren:

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

In diesem Beispiel werden die Metadaten des Schemas USER1 in das Repository l_repo exportiert. Der Export umfasst die Metadaten der Tabellen EMPLOYEE_SALARY und EMPLOYEE_ADDRESS sowie alle Tabellennamen, die OFFICE enthalten. Außerdem wird die EMPLOYEE_RECORD_SEQ-Sequenz exportiert und die Ansichten im Schema ausgeschlossen.

Weitere Informationen finden Sie unter Prozedur EXPORT_SCHEMA.

Dateivorgänge mit einem Cloud-Code-Repository verwenden

Mit den DBMS_CLOUD_REPO-Dateivorgängen können Sie Dateien in einem Cloudcode-Repository erstellen, abrufen, auflisten, aktualisieren oder löschen.

Rufen Sie einen Cloud Code Repository-Handle ab, bevor Sie die Dateivorgänge verwenden. Weitere Informationen finden Sie unter Cloud-Code-Repository initialisieren.

Sie müssen auch ein Repository erstellen, bevor Sie mit Dateien arbeiten. Weitere Informationen finden Sie unter Erstellen und Verwalten eines Cloudcode-Repositorys.

  1. So rufen Sie eine Datei ab:
     SELECT DBMS_CLOUD_REPO.GET_FILE(repo => :repo, file_path => 'test1.sql')
    
  2. So erstellen Sie eine Datei:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.PUT_FILE(
             repo => :repo,
             file_path => 'test1.sql',
             contents => UTL_RAW.cast_to_raw('create table t1 (x varchar2(30))' || CHR(10) || '/')
    
       );
     END;
     /
    
  3. So aktualisieren Sie eine Datei:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.PUT_FILE(
             repo => :repo,
             file_path => 'test1.sql',
             contents => UTL_RAW.cast_to_raw('create table t2 (x varchar2(30))' || CHR(10) || '/')
    
       );
     END;
     /
    
  4. So listen Sie Dateien auf:

     SELECT id, name, bytes, url FROM DBMS_CLOUD_REPO.LIST_FILES(repo => :repo);
    
  5. So löschen Sie eine Datei:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.DELETE_FILE(
             repo => :repo,
             file_path => 'test1.sql'
       );
     END;
     /
    

Weitere Informationen finden Sie unter DBMS_CLOUD_REPO File Operations.

SQL-Installationsvorgänge mit einem Cloud-Code-Repository verwenden

Mit den SQL-Installationsvorgängen DBMS_CLOUD_REPO können Sie SQL-Skripte in einem Cloud Code Repository speichern und herunterladen.

Rufen Sie ein Cloud Code Repository-Handle ab, bevor Sie die SQL-Installationsvorgänge verwenden. Weitere Informationen finden Sie unter Cloud-Code-Repository initialisieren.

Sie müssen auch ein Repository erstellen, bevor Sie mit SQL-Installationsvorgängen arbeiten. Weitere Informationen finden Sie unter Erstellen und Verwalten eines Cloudcode-Repositorys.

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

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

  1. So laden Sie DDL-Metadaten in ein Cloudcode-Repository hoch:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.EXPORT_OBJECT(
             repo => :repo,
             object_type => 'PACKAGE',
             object_name => 'MYPACK',
             file_path   => 'mypack.sql'
       );
     END;
     /
    
  2. So installieren Sie SQL-Anweisungen aus einer Datei:

     VAR repo clob
     BEGIN
       DBMS_CLOUD_REPO.INSTALL_FILE(
             repo => :repo,
             file_path     => 'test3.sql',
             stop_on_error => FALSE
       );
     END;
     /
    
  3. So installieren Sie SQL-Anweisungen aus einem Puffer:

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

Weitere Informationen finden Sie unter DBMS_CLOUD_REPO SQL-Installationsvorgänge.

Verwandte Inhalte

Info über DBMS_CLOUD_REPO