DBMS_CLOUD Unterprogramme und REST-APIs

In diesem Abschnitt werden die DBMS_CLOUD-Unterprogramme und -REST-APIs beschrieben, die mit Autonomous Database bereitgestellt werden.

Hinweis

Um DBMS_CLOUD-Unterprogramme mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer EXECUTE-Berechtigungen erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user Berechtigungen zu erteilen:
GRANT EXECUTE ON DBMS_CLOUD TO adb_user;

Das Package DBMS_CLOUD besteht aus:

DBMS_CLOUD für Zugriffsverwaltung

Die Unterprogramme für die Zugangsdatenverwaltung im Package DBMS_CLOUD, einschließlich Erstellen, Löschen und Aktualisieren von Zugangsdaten.

Unterprogramm Beschreibung

Prozedur CREATE_CREDENTIAL

Diese Prozedur speichert Zugangsdaten für Cloud-Services in Autonomous Database.

Prozedur DROP_CREDENTIAL

Diese Prozedur entfernt vorhandene Zugangsdaten aus Autonomous Database.

Prozedur REFRESH_VAULT_CREDENTIAL

Diese Prozedur aktualisiert sofort das Vault Secret eines Vault Secret mit Zugangsdaten, um die neueste Version des Vault Secrets für den angegebenen credential_name in Autonomous Database abzurufen.

Prozedur UPDATE_CREDENTIAL

Diese Prozedur aktualisiert Zugangsdatenattribute für Cloud-Services in Autonomous Database.

CREATE_CREDENTIAL-Prozedur

Diese Prozedur speichert Zugangsdaten für Cloud-Services in Autonomous Database.

Verwenden Sie gespeicherte Zugangsdaten für den Zugriff auf den Cloud-Service zum Laden von Daten, zum Abfragen externer Daten in der Cloud oder für andere Fälle, wenn Sie die Prozedur DBMS_CLOUD mit dem Parameter credential_name verwenden. Diese Prozedur ist überladen:

  • Verwenden Sie Oracle Cloud Infrastructure-bezogene Parameter wie user_ocid, tenancy_ocid, private_key und fingerprint nur, wenn Sie die Authentifizierung mit Oracle Cloud Infrastructure-Signaturschlüsseln verwenden.

  • Verwenden Sie den Parameter params für eine der folgenden Optionen:

    • Amazon-Ressourcennamen-(ARNs-)Zugangsdaten

    • Google Analytics oder Google BigQuery Zugangsdaten

    • Vault-Secret-Zugangsdaten zur Verwendung mit einem unterstützten Vault:

      • Oracle Cloud Infrastructure Vault
      • Azure Key Vault
      • AWS Secrets Manager
      • GCP-Secret-Manager

Syntax

DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      username          IN VARCHAR2,
      password          IN VARCHAR2 DEFAULT NULL,
      comments          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      user_ocid         IN VARCHAR2,
      tenancy_ocid      IN VARCHAR2,
      private_key       IN VARCHAR2,
      fingerprint       IN VARCHAR2,
      comments          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name  IN VARCHAR2,
      params           IN CLOB DEFAULT);

Parameter

Parameter Beschreibung

credential_name

Der Name der zu speichernden Zugangsdaten. Der Parameter credential_name muss den Benennungskonventionen für Oracle-Objekte entsprechen. Der Parameter credential_name kann als ID in Anführungszeichen oder als ID in Anführungszeichen definiert werden. Weitere Informationen finden Sie unter Benennungsregeln für Datenbankobjekte.

username

Mit den Argumenten username und password werden Ihre Zugangsdaten für Cloud-Services angegeben. Die Angaben für username und password für verschiedene Cloud-Services finden Sie in den Hinweisen zur Verwendung.

password

Mit den Argumenten username und password werden Ihre Zugangsdaten für Cloud-Services angegeben.

comments

Gibt Kommentartext für die Zugangsdaten an. Dieses Feld kann nützlich sein, um Zugangsdaten zu beschreiben und zu unterscheiden.

Die maximale Kommentarlänge beträgt 3800 Zeichen.

user_ocid

Gibt die OCID des Benutzers an. Weitere Einzelheiten zum Abrufen der OCID des Benutzers finden Sie unter Hier erhalten Sie die OCID des Mandanten und des Benutzers.

tenancy_ocid

Gibt die OCID des Mandanten an. Weitere Einzelheiten zum Abrufen der OCID des Mandanten finden Sie unter Hier erhalten Sie die OCID des Mandanten und des Benutzers.

private_key

Gibt den generierten Private Key an. Mit einer Passphrase generierte Private Keys werden nicht unterstützt. Sie müssen den Private Key ohne Passphrase generieren. Weitere Einzelheiten zum Generieren eines Schlüsselpaares im PEM-Format finden Sie unter So generieren Sie einen API-Signaturschlüssel.

fingerprint

Gibt einen Fingerprint an. Nachdem ein generierter Public Key in den Account des Benutzers hochgeladen wurde, wird der Fingerprint in der Konsole angezeigt. Verwenden Sie den angezeigten Fingerprint für dieses Argument. Weitere Einzelheiten finden Sie unter So rufen Sie den Fingerprint des Schlüssels ab und So generieren Sie einen API-Signaturschlüssel.

params

Gibt Zugangsdatenparameter für eine der folgenden Optionen an:

  • Amazon-Ressourcennamen-(ARNs-)Zugangsdaten

  • Google Analytics oder Google BigQuery Zugangsdaten

  • Vault Secret-Zugangsdaten zur Verwendung mit Zugangsdaten vom Typ Benutzername/Kennwort, in denen Sie das Kennwort in einem unterstützten Vault speichern:

    • Oracle Cloud Infrastructure Vault

    • Azure Key Vault

    • AWS Secrets Manager

    • GCP-Secret-Manager

    Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE für das Package DBMS_CLOUD.

Hinweise zur Verwendung

  • Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank.

  • Sie können die Zugangsdaten in Ihrem Schema anzeigen, indem Sie die Tabelle user_credentials abfragen.

  • Sie können die Zugangsdatenkommentare in Ihrem Schema anzeigen, indem Sie die Tabelle user_credentials abfragen. Beispiele:

    SELECT comments FROM user_credentials
            WHERE credential_name = 'MY_CRED';
  • Der ADMIN-Benutzer kann alle Zugangsdaten anzeigen, indem er die Tabelle dba_credentials abfragt.

  • Sie müssen Zugangsdaten nur einmal erstellen, es sei denn, Ihre Zugangsdaten für den Cloud-Service ändern sich. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für DBMS_CLOUD-Prozeduren verwenden, für die ein credential_name-Parameter erforderlich ist.

  • Diese Prozedur ist überladen. Wenn Sie eines der schlüsselbasierten Authentifizierungsattribute user_ocid, tenancy_ocid, private_key oder fingerprint angeben, wird davon ausgegangen, dass der Aufruf auf einem Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten verwendet.

  • Sie können Zugangsdaten in der View ALL_CREDENTIALS auflisten. Beispiel: Führen Sie den folgenden Befehl aus, um Zugangsdaten aufzulisten:

    SELECT credential_name, username, comments FROM all_credentials;

Oracle Cloud Infrastructure-Zugangsdaten (Authentifizierungstoken)

In Oracle Cloud Infrastructure ist username Ihr Oracle Cloud Infrastructure-Benutzername. password ist Ihr Oracle Cloud Infrastructure-Authentifizierungstoken. Siehe Mit Authentifizierungstoken arbeiten.

Beispiele:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DEF_CRED_NAME',
    username => 'adb_user@example.com',
    password => 'password' );
END;
/

Verwenden Sie Authentifizierungstoken-basierte Zugangsdaten, wenn Sie Aufrufe von OCI Object Storage authentifizieren. Verwenden Sie für Aufrufe von anderen Typen von Oracle Cloud Infrastructure-Cloud-Services auf Basis von Oracle Cloud Infrastructure-Signaturschlüsseln.

Bei OCI Object Storage muss der Parameterwert username die Identitätsdomain und den Benutzernamen aus Ihrem Profil enthalten. Sie finden die mit einem Benutzer verknüpfte Identitätsdomain in der Oracle Cloud Infrastructure-Konsole.

Beispiele:

oracleidentitycloudservice/adb_user@example.com

Bei der Standardidentitätsdomain müssen Sie den Domainnamen Default nicht einschließen. Beispiele:

adb_user@example.com

Auf Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten

Mit der Oracle Cloud Infrastructure-Signaturschlüsselauthentifizierung können Sie die folgenden Parameter verwenden: user_ocid, tenancy_ocid, private_key und fingerprint.

Beispiele:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/

Mit einer Passphrase generierte Private Keys werden nicht unterstützt. Sie müssen den Private Key ohne Passphrase generieren. Weitere Informationen finden Sie unter So generieren Sie einen API-Signaturschlüssel.

Oracle Cloud Infrastructure Object Storage Classic-Zugangsdaten

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage Classic befinden, ist username Ihr Oracle Cloud Infrastructure Classic-Benutzername und password Ihr Oracle Cloud Infrastructure Classic-Kennwort.

Zugangsdaten für Amazon Web Services (AWS)

Wenn sich Ihre Quelldateien in Amazon S3 befinden oder Sie eine AWS-API aufrufen, ist username die AWS-Zugriffsschlüssel-ID und password der AWS-Secret-Zugriffsschlüssel. Siehe AWS Identity and Access Management.

Microsoft Azure-Zugangsdaten

Wenn sich Ihre Quelldateien in Azure Blob Storage oder Azure Data Lake Storage befinden oder Sie eine Azure-API aufrufen, ist username der Name Ihres Azure-Speicheraccounts und password ein Zugriffsschlüssel für den Azure-Speicheraccount. Siehe Azure-Speicheraccounts.

Amazon S3-kompatible Zugangsdaten

Dienst Zugangsdateninformationen

Oracle Cloud Infrastructure (Kunden-Secret Keys)

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure befinden, müssen Sie Kunden-Secret Keys mit S3-kompatiblen URLs verwenden. Weitere Informationen finden Sie unter Mit Kunden-Secret Keys arbeiten.

Google Cloud Storage

Wenn sich Ihre Quelldateien in Google Cloud Storage befinden oder Sie Google Cloud Storage-APIs aufrufen, müssen Sie ein Google-Standardprojekt festlegen und einen HMAC-Schlüssel abrufen, um Zugangsdaten für die Angabe mit S3-kompatiblen Google Cloud Storage-URLs zu erstellen. Verwenden Sie die HMAC-Schlüssel-ID als Benutzernamen und das HMAC-Secret als Kennwort.

Weitere Informationen finden Sie unter Projekte und HMAC-Schlüssel.

Wasabi Hot Cloud Storage

Wenn sich Ihre Quelldateien in Wasabi Hot Cloud Storage befinden oder Sie Wasabi Hot Cloud Storage-APIs aufrufen, müssen Sie Zugriffsschlüssel erstellen, um Zugangsdaten für die Angabe mit S3-kompatiblen URLs zu erstellen. Verwenden Sie den Wasabi Hot Cloud Storage-Zugriffsschlüssel als Benutzernamen und den Wasabi Hot Cloud Storage-Secret Key als Kennwort.

Weitere Informationen finden Sie unter Wasabi-API-Zugriffsschlüsselset erstellen.

AWS-Amazon-Ressourcennamen-(ARN-)Zugangsdaten

Wenn sich Ihre Quelldateien in Amazon S3 befinden oder Sie eine AWS-API aufrufen, verwenden Sie params, um die Parameter für die Amazon-Ressourcennamen (ARN) anzugeben.

Parameter Value
aws_role_arn

Gibt den Amazon-Ressourcennamen an, der die AWS-Rolle identifiziert.

Wenn dieser Parameter beim Erstellen der Zugangsdaten nicht angegeben wird, wird ORA-20041 ausgelöst.

external_id_type

Legen Sie optional external_id_type so fest, dass die Autonomous Database-Compartment-OCID, die Datenbank-OCID oder die Mandanten-OCID verwendet wird, indem Sie eine der folgenden Angaben machen: compartment_ocid, database_ocid oder tenant_ocid.

Wenn dieser Parameter beim Erstellen der Zugangsdaten nicht angegeben wird, lautet der Standardwert database_ocid.

Beispiele:

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name      => 'MY_CRED',
        params               => JSON_OBJECT(
               'aws_role_arn'      value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
               'external_id_type'  value 'database_ocid'));
END;
/

GitHub Persönliches Zugriffstoken

Wenn sich Ihre Quelldateien in einem GitHub-Repository befinden oder Sie eine GitHub-API aufrufen, ist username Ihre E-Mail-Adresse GitHub, und password ist Ihr persönliches GitHub-Zugriffstoken. Weitere Informationen finden Sie unter Creating a personal Access Token.

Beispiele:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MY_GITHUB_CRED',
    username => 'user@example.com',
    password => 'your_personal_access_token' );
END;
/

Google Analytics oder Google BigQuery Zugangsdaten

Wenn Sie auf Google Analytics oder Google BigQuery zugreifen, geben Sie mit dem Parameter params die Google OAuth 2.0-Zugangsdatenparameter an.

Parameter Value
gcp_oauth2

Gibt den OAuth 2.0-Zugriff für Google Analytics oder Google BigQuery mit einem JSON-Objekt an, das die folgenden Parameter und deren Werte enthält:

  • client_id: Die Client-ID finden Sie in der Google API-Konsole.

  • client_secret: In der Google API-Konsole können Sie das Client Secret abrufen.

  • refresh_token: Mit einem Aktualisierungstoken kann Ihre Anwendung neue Zugriffstoken abrufen.

Weitere Informationen zu den Zugangsdaten von Google OAuth finden Sie unter Google-APIs mit OAuth 2.0 aufrufen.

Beispiele:

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'GOOGLE_BIGQUERY_CRED',
      params => JSON_OBJECT('gcp_oauth2' value 
                                  JSON_OBJECT(
                                       'client_id'     value 'client_id',
                                       'client_secret' value 'client_secret',
                                       'refresh_token' value 'refresh_token' )));
END;
/

Vault-Secret-Zugangsdaten mit Oracle Cloud Infrastructure Vault

Um Vault-Secret-Zugangsdaten mit Oracle Cloud Infrastructure Vault zu erstellen, geben Sie mit dem Parameter params die erforderlichen Parameter an:

  • username: Gibt den Benutzernamen eines beliebigen Typs von Zugangsdaten für Benutzername/Kennwort an, wie den Benutzernamen des OCI Swift-Kennworts. Beispiel: Wenn Sie Swift-Zugangsdaten mit dem Benutzernamen "scott" und dem Kennwort "password" haben, geben Sie "scott" als Parameter username an.

  • secret_id: Ist die Vault-Secret-ID. Geben Sie den Wert secret_id als Vault Secret-OCID an. Weitere Informationen finden Sie unter Überblick über Vault.

  • region: Ist ein optionaler Parameter, der die Cloud-Regions-ID "oracle" angibt. Wenn die Region angegeben ist, gibt sie den Speicherort an, in dem sich das Oracle Cloud Infrastructure Vault-Secret befindet.

    Standardmäßig verwendet CREATE_CREDENTIAL den region, der aus dem Regionsschlüssel in der secret_id zugeordnet ist. Ein Beispiel für eine Region ist us-ashburn-1.

    Eine vollständige Liste der Regionen finden Sie unter Regionen und Availability-Domains.

Beispiele:

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OCI_SECRET_CRED',
    params => JSON_OBJECT( 
                'username'   value 'scott',
                'region'     value 'us-ashburn-1',
                'secret_id'  value 'ocid1.vaultsecret.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa'));
END;
/

Hinweise zur Verwendung eines Oracle Cloud Infrastructure Vault-Secrets zum Speichern von Vault Secrets:

  • Wenn Sie einen Oracle Cloud Infrastructure Vault verwenden, müssen Sie auf der Autonomous Database-Instanz die Principal-Authentifizierung mit DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL aktivieren.
  • In Oracle Cloud Infrastructure müssen Sie eine Policy für den Resource Principal angeben, um auf das Secret zuzugreifen.

Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE für das Package DBMS_CLOUD.

Vault-Secret-Zugangsdaten mit Azure Key Vault

Um Azure Key Vault-Zugangsdaten zu erstellen, geben Sie mit dem Parameter params die erforderlichen Parameter an:

  • username: Gibt den mit dem Schlüssel verknüpften Benutzernamen an.

  • secret_id: Gibt den Secret-Namen an.

  • azure_vault_name: Gibt den Namen des Vaults an, in dem sich das Secret befindet.

Weitere Informationen finden Sie unter Schlüssel-Vault erstellen.

Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE für das Package DBMS_CLOUD.

Vault Secret-Zugangsdaten mit AWS Secrets Manager

Um Vault Secret-Zugangsdaten mit AWS Secrets Manager zu erstellen, geben Sie mit dem Parameter params die erforderlichen Parameter an:

  • username: Gibt den AWS Secrets Manager-Zugriffsschlüssel an.

  • secret_id: Ist der AWS Secrets Manager AWS ARN.

  • region: (Optional) Gibt die AWS-Serviceregion an, in der sich der Vault und das Secret befinden. Ein Beispiel für die AWS-Region ist "us-east-2". Die Standardregion region ist die Region, die mit dem ARN im Parameter secret_id angegeben wird.

    Weitere Informationen finden Sie unter AWS-Regionen verwalten.

    Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE für das Package DBMS_CLOUD.

Vault-Secret-Zugangsdaten mit GCP Secret Manager

Um GCP Secret Manager-Zugangsdaten zu erstellen, geben Sie mit dem Parameter params die erforderlichen Parameter an:

  • username: Gibt den mit dem Secret verknüpften Benutzernamen an.

  • secret_id: Ist der Secret-Name.

  • gcp_project_id: Gibt die ID des Projekts an, in dem sich das Secret befindet.

Weitere Informationen finden Sie unter Secret Manager.

Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE für das Package DBMS_CLOUD.

Prozedur DROP_CREDENTIAL

Diese Prozedur entfernt vorhandene Zugangsdaten aus Autonomous Database.

Syntax

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

Parameter

Parameter Beschreibung

credential_name

Der Name der zu entfernenden Zugangsdaten.

Prozedur REFRESH_VAULT_CREDENTIAL

Mit dieser Prozedur wird das Vault Secret von Vault Secret-Zugangsdaten aktualisiert.

Mit dieser Prozedur können Sie das Vault Secret einer Vault Secret-Zugangsdaten sofort aktualisieren, um die neueste Version des Vault Secrets für die angegebene credential_name abzurufen.

Syntax

DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL (
    credential_name   IN VARCHAR2);

Parameter

Parameter Beschreibung

credential_name

Der Name der zu aktualisierenden Zugangsdaten.

Hinweise zur Verwendung

  • Der ADMIN-Benutzer kann alle Zugangsdaten anzeigen, indem er die Tabelle dba_credentials abfragt.

  • Sie können Zugangsdaten in der View ALL_CREDENTIALS auflisten. Beispiel: Führen Sie den folgenden Befehl aus, um Zugangsdaten aufzulisten:

    SELECT credential_name, username, comments FROM all_credentials;

Beispiel

BEGIN
  DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL(
     credential_name => 'AZURE_SECRET_CRED'); 
END;
/

Prozedur UPDATE_CREDENTIAL

Diese Prozedur aktualisiert ein Attribut mit einem neuen Wert für einen angegebenen credential_name.

Verwenden Sie gespeicherte Zugangsdaten zum Laden von Daten, zum Abfragen externer Daten in der Cloud oder überall, wo Sie DBMS_CLOUD-Prozeduren mit einem credential_name-Parameter verwenden.

Syntax

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

Parameter

Parameter Beschreibung

credential_name

Der Name der zu aktualisierenden Zugangsdaten.

attribute

Name des zu aktualisierenden Attributs.

Für Zugangsdaten vom Typ "Benutzername/Kennwort" sind die gültigen attribute-Werte: USERNAME und PASSWORD.

Für Zugangsdaten für einen Amazon-ARN sind die gültigen attribute-Werte aws_role_arn und external_id_type.

Für Zugangsdaten für Google BigQuery oder Google Analytics sind die gültigen attribute-Werte: client_id, client_secret und refresh_token.

Je nach verwendetem Vault lauten die gültigen attribute-Werte für Vault Secret-Zugangsdaten:
  • Oracle Cloud Infrastructure Vault: secret_id, region

  • Azure Key Vault: secret_id, azure_vault_name

  • AWS Secrets Manager: secret_id, region

  • GCP Secret Manager: secret_id, gcp_project_id

Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

value

Neuer Wert für das angegebene Attribut.

Hinweise zur Verwendung

  • Beim Wert für den Benutzernamen muss die Groß- und Kleinschreibung berücksichtigt werden. Er darf keine doppelten Anführungszeichen oder Leerzeichen enthalten.

  • Der ADMIN-Benutzer kann alle Zugangsdaten anzeigen, indem er dba_credentials abfragt.

  • Sie müssen Zugangsdaten nur einmal erstellen, es sei denn, Ihre Zugangsdaten für den Cloud-Service ändern sich. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für DBMS_CLOUD-Prozeduren verwenden, für die ein credential_name-Parameter erforderlich ist.

  • Sie können Zugangsdaten in der View ALL_CREDENTIALS auflisten. Beispiel: Führen Sie den folgenden Befehl aus, um Zugangsdaten aufzulisten:

    SELECT credential_name, username, comments FROM all_credentials;

Beispiele

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'OBJ_STORE_CRED',
     attribute => 'PASSWORD',
     value => 'password'); 
END;
/
BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'ARN_CRED',
     attribute => 'aws_role_arn',
     value => 'NEW_AWS_ARN'); 
END;
/

DBMS_CLOUD für Objekte und Dateien

Die Unterprogramme für die Objekt- und Dateiverwaltung im Package DBMS_CLOUD.

Unterprogramm Beschreibung

Prozedur COPY_COLLECTION

Diese Prozedur lädt Daten aus dem Cloud-Objektspeicher oder aus Dateien in einem Verzeichnis in eine vorhandene SODA-Collection.

Prozedur COPY_DATA

Diese Prozedur lädt Daten aus Cloud Object Storage oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.

Prozedur COPY_DATA für Avro-, ORC- oder Parquet-Dateien

Diese Prozedur, bei der der Parameter format type auf den Wert orc, parquet oder avro gesetzt ist, lädt Daten aus ORC-, Parquet- oder Avro-Dateien in die Cloud oder aus ORC-, Parquet- oder Avro-Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.

Ähnlich wie Textdateien werden die Daten aus der ORC-, Parquet- oder Avro-Quelldatei in die vorhandene interne Tabelle kopiert.

Prozedur COPY_OBJECT

Mit dieser Prozedur werden Dateien aus einem Cloud-Objektspeicher-Bucket in einen anderen kopiert.

Prozedur CREATE_EXTERNAL_TABLE

Diese Prozedur erstellt eine externe Tabelle für Dateien in der Cloud oder für Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.
Prozedur CREATE_CLOUD_TABLE

Mit dieser Prozedur wird eine Cloud-Tabelle erstellt, in der alle persistenten Daten im von Oracle verwalteten Objektspeicher gespeichert werden.

CREATE_EXTERNAL_TABLE Prozedur für Apache Iceberg

Mit dieser Prozedur werden externe Tabellen für Apache Iceberg-Tabellen in den unterstützten Konfigurationen erstellt.

CREATE_EXTERNAL_TABLE Prozedur für Avro-, ORC- oder Parquet-Dateien

Diese Prozedur mit dem format-Parameter type, der auf den Wert parquet, orc oder avro gesetzt ist, erstellt eine externe Tabelle mit Parquet-, ORC- oder Avro-Formatdateien in der Cloud oder in einem Verzeichnis.

So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.

Prozedur CREATE_EXTERNAL_PART_TABLE

Diese Prozedur erstellt eine externe partitionierte Tabelle für Dateien in der Cloud. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.

Prozedur CREATE_EXTERNAL_TEXT_INDEX

Diese Prozedur erstellt einen Textindex für die Objektspeicherdateien.

Prozedur CREATE_HYBRID_PART_TABLE

Diese Prozedur erstellt eine Hybrid-partitionierte Tabelle. So können Sie Abfragen hybrider partitionierter Daten aus Autonomous Database ausführen.

Prozedur DELETE_ALL_OPERATIONS

Diese Prozedur löscht entweder alle in der Tabelle user_load_operations in Ihrem Schema protokollierten Dataload-Vorgänge oder alle Dataload-Vorgänge des angegebenen Typs, wie mit dem Parameter type angegeben.

Prozedur DELETE_FILE

Diese Prozedur entfernt die angegebene Datei aus dem angegebenen Verzeichnis in Autonomous Database

Prozedur DELETE_OBJECT

Diese Prozedur löscht das angegebene Objekt im Objektspeicher.

Prozedur DELETE_OPERATION

Diese Prozedur akzeptiert eine operation_id als Eingabe und löscht die Logs, die mit der angegebenen operation_id verknüpft sind.

Prozedur DROP_EXTERNAL_TEXT_INDEX

Diese Prozedur löscht den Textindex für die Objektspeicherdateien.

EXPORT_DATA-Prozedur

Diese Prozedur exportiert Daten aus Autonomous Database basierend auf dem Ergebnis einer Abfrage in Dateien in der Cloud. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden. Je nach angegebenem format-Parameter der Option type exportiert die Prozedur Zeilen als Text mit den Optionen CSV, JSON, Parquet oder XML in den Cloud-Objektspeicher oder schreibt Daten mit dem Zugriffstreiber ORACLE_DATAPUMP in eine Dumpdatei.

GET_OBJECT Prozedur und Funktion

Diese Prozedur ist überladen. Die Prozedurform liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous Database. Die Funktionsform liest ein Objekt aus dem Cloud-Objektspeicher und gibt ein BLOB an Autonomous Database zurück.

LIST_FILES-Funktion

Diese Funktion listet die Dateien im angegebenen Verzeichnis auf. Die Ergebnisse umfassen die Dateinamen und zusätzliche Metadaten zu den Dateien, wie die Dateigröße in Byte sowie die Zeitstempel der Erstellung und der letzten Änderung.

Funktion LIST_OBJECTS

Diese Funktion listet Objekte am angegebenen Speicherort im Objektspeicher auf. Die Ergebnisse umfassen die Objektnamen und zusätzliche Metadaten zu den Objekten, wie Größe, Prüfsumme sowie Zeitstempel der Erstellung und der letzten Änderung.

Prozedur MOVE_OBJECT

Mit dieser Prozedur wird ein Objekt von einem Cloud-Objektspeicher-Bucket in einen anderen verschoben.

PUT_OBJECT-Prozedur

Diese Prozedur ist überladen. In einer Form kopiert die Prozedur eine Datei aus Autonomous Database in den Cloud-Objektspeicher. In einer anderen Form kopiert die Prozedur ein BLOB aus Autonomous Database in den Cloud-Objektspeicher.

Prozedur SYNC_EXTERNAL_PART_TABLE

Diese Prozedur vereinfacht das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud. Führen Sie diese Prozedur aus, wenn neue Partitionen hinzugefügt werden oder wenn Partitionen aus der Objektspeicherquelle für die externe partitionierte Tabelle entfernt werden.

Prozedur VALIDATE_EXTERNAL_TABLE

Diese Prozedur validiert die Quelldateien für eine externe Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen in einer Badfile-Tabelle in Autonomous Database nicht entsprechen.

Prozedur VALIDATE_EXTERNAL_PART_TABLE

Diese Prozedur validiert die Quelldateien für eine externe partitionierte Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database.

Prozedur VALIDATE_HYBRID_PART_TABLE

Diese Prozedur validiert die Quelldateien für eine Hybridpartitionierungstabelle, generiert Loginformationen und speichert die Zeilen, die den für die Hybridtabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database.

Prozedur COPY_COLLECTION

Diese Prozedur lädt Daten aus dem Cloud-Objektspeicher oder aus einem Verzeichnis in eine SODA-Collection. Wenn die angegebene SODA-Collection nicht vorhanden ist, wird sie von der Prozedur erstellt. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Syntax

DBMS_CLOUD.COPY_COLLECTION (
    collection_name   IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    format            IN CLOB     DEFAULT NULL
);

DBMS_CLOUD.COPY_COLLECTION (
    collection_name   IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    format            IN CLOB     DEFAULT NULL,
    operation_id      OUT NOCOPY NUMBER
);

Parameter

Parameter Beschreibung

collection_name

Der Name der SODA-Collection, in die Daten geladen werden. Wenn bereits eine Collection mit diesem Namen vorhanden ist, werden die angegebenen Daten geladen. Andernfalls wird eine neue Collection erstellt.

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit file_uri_list angeben.

file_uri_list

Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an.

URIs für Cloud-Quelldatei

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch.

Beispiele:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet:'MY_DIR:filename.ext'. Standardmäßig ist der Verzeichnisname MY_DIR ein Datenbankobjekt, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beachten Sie beim Dateinamen die Groß-/Kleinschreibung.

Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: 'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. Beispiel:'MY_DIR1:*, MY_DIR2:test?'

Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: '"my_dir1":*, "my_dir2":Test?'

Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: 'MY_DIR:''filename.ext'. Gibt an, dass filename mit einem Anführungszeichen (') beginnt.

format

Die Optionen, die das Format der Quelldateien beschreiben. Diese Optionen werden als JSON-Zeichenfolge angegeben.

Unterstützte Formate: characterset, compression, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays, keyassignment und keypath.

Neben den genannten Formaten für JSON-Daten unterstützt Autonomous Database auch andere Formate. Die Liste der von Autonomous Database unterstützten Formatargumente finden Sie unter DBMS_CLOUD-Paketformatoptionen.

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Beispiel

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'OBJ_STORE_CRED',
            username        => 'user_name@oracle.com',
            password        => 'password'
            );

    DBMS_CLOUD.COPY_COLLECTION(
            collection_name => 'myCollection',
            credential_name => 'OBJ_STORE_CRED',
            file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'  
            );
END;
/

Prozedur COPY_DATA

Diese Prozedur lädt Daten aus Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Syntax

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    schema_name       IN VARCHAR2,
    field_list        IN CLOB,
    format            IN CLOB);

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB DEFAULT NULL,
    schema_name       IN VARCHAR2 DEFAULT NULL,
    field_list        IN CLOB DEFAULT NULL,
    format            IN CLOB DEFAULT NULL
    operation_id      OUT NOCOPY NUMBER);

Parameter

Parameter Beschreibung

table_name

Der Name der Zieltabelle in der Datenbank. Die Zieltabelle muss erstellt werden, bevor Sie COPY_DATA ausführen.

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Dieser Parameter wird nicht verwendet, wenn Sie eine Verzeichnis- oder Tabellen-Hyperlink-URL mit file_uri_list angeben.

file_uri_list

Dieser Parameter gibt einen der folgenden Werte an:

  • Durch Komma getrennte Liste der Quelldatei-URIs

  • Durch Komma getrennte Liste der Tabellen-Hyperlink-URLs

  • Ein oder mehrere Verzeichnisse und Quelldateien

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

URIs für Cloud-Quelldatei

Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch.

Beispiele:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

URL Tabellen-Hyperlink

Sie haben folgende Möglichkeiten, einen Tabellen-Hyperlink zu verwenden:
  • Geben Sie eine einzelne Tabellen-Hyperlink-URL an.

    Beispiele:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • Geben Sie eine durch Komma getrennte Liste mit Tabellen-Hyperlink-URLs an. Stellen Sie sicher, dass alle enthaltenen Tabellen-Hyperlinks dieselben Spaltennamen, dieselbe Spaltenreihenfolge und dieselben Spaltendatentypen aufweisen.

    Beispiele:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    
Weitere Informationen finden Sie unter Informationen zu Tabellenhyperlinks in Autonomous Database und Prozedur GET_PREAUTHENTICATED_URL.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet:'MY_DIR:filename.ext'. Standardmäßig ist der Verzeichnisname MY_DIR ein Datenbankobjekt, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beachten Sie beim Dateinamen die Groß-/Kleinschreibung.

Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: 'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. Beispiel:'MY_DIR1:*, MY_DIR2:test?'

Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: '"my_dir1":*, "my_dir2":Test?'

Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: 'MY_DIR:''filename.ext'. Gibt an, dass filename mit einem Anführungszeichen (') beginnt.

schema_name

Der Name des Schemas, in dem sich die Zieltabelle befindet. Der Standardwert ist NULL, d.h. die Zieltabelle befindet sich im selben Schema wie der Benutzer, der die Prozedur ausführt.

field_list

Gibt die Felder in den Quelldateien und deren Datentypen an. Der Standardwert ist NULL, d.h. die Felder und ihre Datentypen werden durch die Zieltabellendefinition bestimmt. Die Syntax dieses Arguments entspricht der field_list-Klausel in regulären externen Oracle-Tabellen. Weitere Informationen zu field_list finden Sie unter Oracle® Database-Utilitys.

Wenn der Wert der Option type des Parameters format json lautet, wird dieser Parameter ignoriert.

Ein Beispiel mit field_list finden Sie unter Prozedur CREATE_EXTERNAL_TABLE.

format

Die Optionen, die das Format der Quell-, Log- und fehlerhaften Dateien beschreiben. Die Liste der Optionen und Informationen zum Angeben der Werte finden Sie unter DBMS_CLOUD Packageformatoptionen.

Informationen zu den Dateiformaten Avro, ORC oder Parquet finden Sie unter DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet.

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Hinweis zur Verwendung

Das Standardbegrenzungszeichen für Datensätze ist detected newline. Mit detected newline versucht DBMS_CLOUD automatisch, das richtige Newline-Zeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll. DBMS_CLOUD sucht zuerst nach dem Windows-Zeilenvorschubzeichen \r\n. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn kein Windows-Newline-Zeichen gefunden wird, sucht DBMS_CLOUD nach dem UNIX/Linux-Newline-Zeichen \n. Wird dieses gefunden, wird \n für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatztrennzeichen verwenden, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatztrennzeichen verwenden.

Weitere Informationen zur Formatoption recorddelmiter finden Sie unter DBMS_CLOUD Packageformatoptionen.

Beispiele

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DEF_CRED_NAME',
            username        => 'user_name@oracle.com',
            password        => 'password'
            );
END;
/
BEGIN
 DBMS_CLOUD.COPY_DATA(
    table_name =>'CHANNELS',
    credential_name =>'DEF_CRED_NAME',
    file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
    format => json_object('delimiter' value ',')
 );
END;
/
BEGIN
    DBMS_CLOUD.COPY_DATA(
            table_name      => 'ORDERS',
            schema_name     => 'TEST_SCHEMA',
            credential_name => 'DEF_CRED_NAME',
	     file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
            format          =>  json_object('ignoreblanklines' value TRUE,
                                            'rejectlimit' value '0',
                                            'dateformat' value 'yyyy-mm-dd',
                                            'regexuri' value TRUE)
            );
END;
/

Prozedur COPY_DATA für Avro-, ORC- oder Parkettdateien

Diese Prozedur, bei der der Parameter format type auf den Wert avro, orc oder parquet gesetzt ist, lädt Daten aus Avro-, ORC- oder Parquet-Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.

Ähnlich wie Textdateien werden die Daten aus der Avro-, ORC- oder Parquet-Quelldatei in die vorhandene interne Tabelle kopiert.

Syntax

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    schema_name       IN VARCHAR2 DEFAULT,
    field_list        IN CLOB DEFAULT,
    format            IN CLOB DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der Zieltabelle in der Datenbank. Die Zieltabelle muss erstellt werden, bevor Sie COPY_DATA ausführen.

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit file_uri_list angeben.

file_uri_list

Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an.

URIs für Cloud-Quelldatei

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch.

Beispiele:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet:'MY_DIR:filename.ext'. Standardmäßig ist der Verzeichnisname MY_DIR ein Datenbankobjekt, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beachten Sie beim Dateinamen die Groß-/Kleinschreibung.

Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: 'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. Beispiel:'MY_DIR1:*, MY_DIR2:test?'

Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: '"my_dir1":*, "my_dir2":Test?'

Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: 'MY_DIR:''filename.ext'. Gibt an, dass filename mit einem Anführungszeichen (') beginnt.

schema_name

Der Name des Schemas, in dem sich die Zieltabelle befindet. Der Standardwert ist NULL, d.h. die Zieltabelle befindet sich im selben Schema wie der Benutzer, der die Prozedur ausführt.

field_list

Wird für Avro-, ORC- oder Parkettdateien ignoriert.

Die Felder in der Quelle entsprechen den Spalten der externen Tabelle nach Namen. Quelldatentypen werden in den Datentyp der Spalte der externen Tabelle konvertiert.

Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD Package ORC to Oracle Data Type Mapping.

Bei Parquet-Dateien finden Sie weitere Informationen zur Zuordnung unter DBMS_CLOUD Package Parquet to Oracle Data Type Mapping.

Informationen zur Zuordnung bei Avrodateien finden Sie unter DBMS_CLOUD Datentypzuordnung von Avro zu Oracle-Package.

format

Die Optionen, die das Format der Quelldateien beschreiben. Für Avro-, ORC- oder Parquet-Dateien werden nur zwei Optionen unterstützt: siehe DBMS_CLOUD Packageformatoptionen für Avro, ORC oder Parquet.

Hinweise zur Verwendung

  • Wie bei anderen Datendateien generieren Dataloads von Avro, ORC und Parquet Logs, die in den Tabellen dba_load_operations und user_load_operations angezeigt werden können. Bei jedem Ladevorgang wird ein Datensatz zu dba[Benutzer]_load_operations hinzugefügt, der die Tabelle mit den Logs angibt.

    Die Logtabelle enthält zusammenfassende Informationen zum Ladevorgang.

  • Wenn bei Avro, ORC oder Parquet der format-Parameter type auf den Wert avro, orc oder parquet gesetzt ist, ist die Tabelle BADFILE_TABLE immer leer.

    • Bei Parquet-Dateien lösen PRIMARY KEY-Constraint-Fehler einen ORA-Fehler aus.

    • Wenn bei Daten für eine Spalte ein Konvertierungsfehler auftritt. Beispiel: Die Zielspalte ist nicht groß genug, um den konvertierten Wert aufzunehmen, wird der Wert für die Spalte auf NULL gesetzt. Dadurch wird kein abgelehnter Datensatz erstellt.

Prozedur COPY_OBJECT

Mit dieser Prozedur wird ein Objekt aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen kopiert.

Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.

Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.

Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname für das Ziel angegeben ist.

Syntax

DBMS_CLOUD.COPY_OBJECT (
    source_credential_name  IN  VARCHAR2 DEFAULT NULL,
    source_object_uri       IN  VARCHAR2,
    target_object_uri       IN  VARCHAR2,
    target_credential_name  IN  VARCHAR2 DEFAULT NULL
);

Parameter

Parameter Beschreibung

source_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Quell-Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen source_credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

source_object_uri

Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_object_uri

Gibt die URI für den Zielobjektspeicher an.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen target_credential_name-Wert angeben, wird target_object_uri auf den Wert source_credential_name gesetzt.

Beispiel

BEGIN 
DBMS_CLOUD.COPY_OBJECT (
    source_credential_name => 'OCI_CRED',
    source_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
    target_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/

Prozedur CREATE_CLOUD_TABLE

Diese Prozedur erstellt eine Cloud-Tabelle. Alle Cloud-Tabellendaten werden in von Oracle verwaltetem Object Storage gespeichert (Cloud-Tabellen speichern nur ihre Metadaten in der Datenbank).

Syntax

DBMS_CLOUD.CREATE_CLOUD_TABLE (
    table_name       IN VARCHAR2,
    column_list      IN CLOB,
    params           IN CLOB);

Parameter

Parameter Beschreibung

table_name

Der Name der Cloud-Tabelle.

column_list

Durch Komma getrennte Liste der Spaltennamen und Datentypen für die Cloud-Tabelle.

Hinweise zur Verwendung

  • DEFAULT-Attribute: Die column_list kann die DEFAULT-Klausel enthalten, die wie die DEFAULT-Klausel in einer normalen CREATE TABLE funktioniert. Informationen zum Verhalten der DEFAULT-Klausel finden Sie unter CREATE TABLE.

  • Verwenden Sie DROP TABLE, um eine Cloud-Tabelle zu löschen. Cloud-Tabellen unterstützen den Papierkorb nicht.

    Beispiele:

    DROP TABLE CLOUD_TAB1; 
  • Sie können die Berechtigungen SELECT, INSERT und UPDATE für eine Cloud-Tabelle erteilen. Eine Cloud-Tabelle kann keine weiteren Berechtigungen erhalten.

    Weitere Informationen finden Sie unter Berechtigung und Rollenautorisierung konfigurieren.

Beispiele

EXEC DBMS_CLOUD.CREATE_CLOUD_TABLE( 'CLOUD_TAB1', 'I INTEGER, J INTEGER' );
BEGIN
  DBMS_CLOUD.CREATE_CLOUD_TABLE(
   table_name  => 'CLOUD_TABLE_WITH_DEFAULT',
   column_list => 'I INTEGER,
                   A VARCHAR2(32) DEFAULT ''ABC''' );
END;
/

Prozedur CREATE_EXTERNAL_PART_TABLE

Diese Prozedur erstellt eine externe partitionierte Tabelle für Dateien in der Cloud oder aus Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.

Syntax

DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    partitioning_clause  IN CLOB,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);


DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    file_uri_list        IN VARCHAR2,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

partitioning_clause

Gibt die vollständige PartitionierungsKlausel an, einschließlich der Speicherortinformationen für einzelne Partitionen.

Wenn Sie den Parameter partitioning_clause verwenden, ist der Parameter file_uri_list nicht zulässig.

file_uri_list

Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an.

URIs für Cloud-Quelldatei

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch.

Diese Option wird nur bei externen Tabellen unterstützt, die für eine Datei im Object Storage erstellt werden.

Beispiele:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Wenn Sie den Parameter file_uri_list verwenden, ist der Parameter partitioning_clause nicht zulässig.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

column_list

Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. Für diesen Parameter gelten je nach Typ der Datendateien, die mit dem Parameter file_uri_list angegeben werden, die folgenden Anforderungen:

  • Der Parameter column_list ist bei unstrukturierten Dateien erforderlich. Bei unstrukturierten Dateien, z.B. bei CSV-Textdateien, muss der Parameter column_list alle Spaltennamen und Datentypen in der Datendatei sowie die vom Objektnamen abgeleiteten Partitionsspalten angeben.

  • Der Parameter column_list ist bei strukturierten Dateien optional. Beispiel: Bei Avro-, ORC- oder Parquet-Datendateien ist der Parameter column_list nicht erforderlich. Wenn column_list nicht angegeben wird, muss die Option partition_columns des Parameters format Spezifikationen für Spaltennamen (name) und Datentypen (type) enthalten.

field_list

Gibt die Felder in den Quelldateien und deren Datentypen an. Der Standardwert ist NULL, d.h. die Felder und ihre Datentypen werden durch den Parameter column_list bestimmt. Die Syntax dieses Arguments entspricht der field_list-Klausel in regulären externen Oracle-Tabellen. Weitere Informationen zu field_list finden Sie unter Oracle® Database-Utilitys.

format

Die Formatoption partition_columns gibt die DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE-Spaltennamen und die Datentypen von Partitionsspalten an, wenn die Partitionsspalten aus dem Dateipfad abgeleitet werden, je nachdem, ob es sich um einen strukturierten oder unstrukturierten Datendateityp handelt:

  • Wenn DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE den Parameter column_list enthält und die Datendateien unstrukturiert sind, wie z.B. CSV-Textdateien, enthält partition_columns den Datentyp nicht. Beispiel: Verwenden Sie für diesen partition_columns-Typ das folgende Format:

    '"partition_columns":["state","zipcode"]'

    Der Datentyp ist nicht erforderlich, da er im column_list-Parameter DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE angegeben ist.

  • Wenn DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE den Parameter column_list nicht enthält und die Datendateien wie Avro-, ORC- oder Parquet-Dateien strukturiert sind, enthält die Option partition_columns sowohl den Spaltennamen, name-Unterklausel, als auch den Datentyp, type-Unterklausel. Beispiel: Im Folgenden wird eine partition_columns-Spezifikation dargestellt:

    '"partition_columns":[
                   {"name":"country", "type":"varchar2(10)"},
                   {"name":"year", "type":"number"},
                   {"name":"month", "type":"varchar2(10)"}]'

Wenn die Datendateien unstrukturiert sind und die Unterklausel type mit partition_columns angegeben ist, wird die Unterklausel type ignoriert.

Bei Objektnamen, die nicht auf dem Hive-Format basieren, muss die Reihenfolge der angegebenen partition_columns-Spalten mit der Reihenfolge übereinstimmen, wie sie im Objektnamen im Dateipfad angezeigt werden, der im Parameter file_uri_list angegeben ist.

Informationen zu allen format-Parameteroptionen, die das Format der Quelldateien beschreiben, finden Sie unter DBMS_CLOUD-Packageformatoptionen.

Hinweise zur Verwendung

  • Sie können diese Prozedur nicht mit beiden Parametern partitioning_clause und file_uri_list aufrufen.

  • Die Angabe des Parameters column_list ist bei strukturierten Datendateien, einschließlich Avro-, Parquet- oder ORC-Daten, optional. Wenn column_list nicht angegeben wird, muss die Option partition_columns des Parameters format sowohl name als auch type enthalten.

  • Der Parameter column_list ist bei unstrukturierten Datendateien wie CSV-Textdateien erforderlich.

  • Die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE unterstützt externe partitionierte Dateien in den unterstützten Cloud-Object Storage-Services, darunter:
    • Oracle Cloud Infrastructure Object Storage

    • Azure Blob Storage oder Azure Data Lake Storage

    • Amazon S3

    • Amazon S3-Kompatible, darunter: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage und Wasabi Hot Cloud Storage.

    • GitHub-Repository

    Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

  • Die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE unterstützt externe partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem.

  • Wenn Sie DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE mit dem Parameter file_uri_list aufrufen, muss es sich bei den Typen für die im Dateinamen des Cloud-Objektspeicher angegebenen Spalten um einen der folgenden Typen handeln:

    VARCHAR2(n)
    NUMBER(n)
    NUMBER(p,s)
    NUMBER
    DATE
    TIMESTAMP(9)
  • Das Standardbegrenzungszeichen für Datensätze ist detected newline. Mit detected newline versucht DBMS_CLOUD automatisch, das richtige Newline-Zeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll. DBMS_CLOUD sucht zuerst nach dem Windows-Zeilenvorschubzeichen \r\n. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn kein Windows-Newline-Zeichen gefunden wird, sucht DBMS_CLOUD nach dem UNIX/Linux-Newline-Zeichen \n. Wird dieses gefunden, wird \n für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatztrennzeichen verwenden, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatztrennzeichen verwenden.

    Weitere Informationen zur Formatoption recorddelmiter finden Sie unter DBMS_CLOUD Packageformatoptionen.

  • Die externen partitionierten Tabellen, die Sie mit DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE erstellen, enthalten zwei unsichtbare Spalten: file$path und file$name. Anhand dieser Spalten können Sie ermitteln, aus welcher Datei ein Datensatz stammt.

    • file$path: Gibt den Dateipfadtext am Anfang des Objektnamens an.

    • file$name: Gibt den Objektnamen an, einschließlich dem gesamten Text, der auf den Bucket-Namen folgt.

Beispiele

Beispiel für die Verwendung des Parameters partitioning_clause:

BEGIN  
   DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
      table_name =>'PET1',  
      credential_name =>'OBJ_STORE_CRED',
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
      column_list => 'col1 number, col2 number, col3 number',
      partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) location
                                    ( ''&base_URL//file_11.txt'')
                                 ,
                                 partition p2 values less than (2000) location
                                    ( ''&base_URL/file_21.txt'')
                                 ,
                                 partition p3 values less than (3000) location 
                                    ( ''&base_URL/file_31.txt'')
                                 )'
     );
   END;
/  


BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
       table_name          => 'PET',
       format              => json_object('delimiter'value ','),
       column_list         => 'name varchar2(20), gender varchar2(10), salary number',
       partitioning_clause => 'partition by range (salary)
              (   -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR 
                  partition p1 values less than (100) LOCATION (''test1.csv''),
                   -- Use test2.csv in a specified directory MY_DIR
                  partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'')        )'   );                       
END;                     
/

Beispiel für die Verwendung der Parameter file_uri_list und column_list mit unstrukturierten Dateien:

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
   table_name => 'MYSALES',
   credential_name => 'DEF_CRED_NAME',
   file_uri_list     => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv', 
   column_list       => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)', 
   field_list        => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
   format            => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/ 

Beispiel für die Verwendung von file_uri_list ohne Parameter column_list mit strukturierten Datendateien:

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
  table_name => 'MYSALES',
  credential_name => 'DEF_CRED_NAME',
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
    table_name      => 'MYSALES',
    credential_name => 'DEF_CRED_NAME',
    file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
    format          => 
        json_object('type' value 'parquet', 'schema' value 'first',
                    'partition_columns' value 
                          json_array(
                                json_object('name' value 'country', 'type' value 'varchar2(100)'),
                                json_object('name' value 'year', 'type' value 'number'),
                                json_object('name' value 'month', 'type' value 'varchar2(2)')
                          )
         )
    );
END;
/

Prozedur CREATE_EXTERNAL_TABLE

Diese Prozedur erstellt eine externe Tabelle für Dateien in der Cloud oder aus Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.

Syntax

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB,
    field_list       IN CLOB DEFAULT,
    format           IN CLOB DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis oder eine Tabellen-Hyperlink-URL mit file_uri_list angeben.

file_uri_list

Dieser Parameter gibt einen der folgenden Werte an:

  • Durch Komma getrennte Liste der Quelldatei-URIs.

  • Durch Komma getrennte Liste der Tabellen-Hyperlink-URLs.

  • Ein oder mehrere Verzeichnisse und Quelldateien.

URIs für Cloud-Quelldatei

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch.

Diese Option wird nur bei externen Tabellen unterstützt, die für eine Datei im Object Storage erstellt werden.

Beispiele:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

URL Tabellen-Hyperlink

Mit einer Tabellen-Hyperlink-URL können Sie eine externe Tabelle wie folgt erstellen:
  • Geben Sie eine einzelne Hyperlink-URL für Autonomous Database-Tabellen an. Sie können auch Filter und Klauseln auf die Daten anwenden, wenn Sie Daten aus der Tabelle lesen. Beispiel: Sie können die Daten mit der Klausel WHERE filtern oder mit der Klausel ORDER BY sortieren.

    Beispiele:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • Geben Sie eine durch Komma getrennte Liste der Autonomous Database-Tabellen-Hyperlinks-URLs an. Stellen Sie sicher, dass alle enthaltenen Tabellen-Hyperlinks dieselben Spaltennamen, Spaltenreihenfolge und Spaltendatentypen in demselben Schema aufweisen müssen.

    Beispiele:
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    
Hinweis

Tabellen-Hyperlink-URLs unterstützen keine Platzhalter.
Weitere Informationen finden Sie unter Informationen zu Tabellenhyperlinks in Autonomous Database und Prozedur GET_PREAUTHENTICATED_URL.
Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet:'MY_DIR:filename.ext'. Standardmäßig ist der Verzeichnisname MY_DIR ein Datenbankobjekt, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beachten Sie beim Dateinamen die Groß-/Kleinschreibung.

Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: 'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. Beispiel:'MY_DIR1:*, MY_DIR2:test?'

Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: '"my_dir1":*, "my_dir2":Test?'

Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: 'MY_DIR:''filename.ext'. Gibt an, dass filename mit einem Anführungszeichen (') beginnt.

column_list

Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle.

field_list

Gibt die Felder in den Quelldateien und deren Datentypen an. Der Standardwert ist NULL, d.h. die Felder und ihre Datentypen werden durch den Parameter column_list bestimmt. Die Syntax dieses Argumentes entspricht der field_list-Klausel in regulären externen Oracle Database-Tabellen. Weitere Informationen zu field_list finden Sie unter ORACLE_LOADER Access Driver field_list unter der Klausel field_definitions in Oracle Database-Utilitys.

format

Die Optionen, die das Format der Quelldateien beschreiben. Die Liste der Optionen und Informationen zum Angeben der Werte finden Sie unter DBMS_CLOUD Packageformatoptionen.

Informationen zu Dateien im Avro-, ORC- oder Parquet-Format finden Sie unter Prozedur CREATE_EXTERNAL_TABLE für Avro-, ORC- oder Parquet-Dateien.

Hinweise zur Verwendung

  • Die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE unterstützt externe partitionierte Dateien in den unterstützten Cloud-Objektspeicherquellen, einschließlich:

    • Oracle Cloud Infrastructure Object Storage

    • Azure Blob Storage oder Azure Data Lake Storage

    • Amazon S3

    • Amazon S3-Kompatible, darunter: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage und Wasabi Hot Cloud Storage.

    • GitHub-Repository

    • Oracle Cloud Infrastructure Object Storage mit Tabellen-Hyperlink-URLs

    Die Zugangsdaten stellen eine Eigenschaft auf Tabellenebene dar. Daher müssen sich die externen Dateien in demselben Objektspeicher befinden.

    Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

  • Das Standardbegrenzungszeichen für Datensätze ist detected newline. Mit detected newline versucht DBMS_CLOUD automatisch, das richtige Newline-Zeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll. DBMS_CLOUD sucht zuerst nach dem Windows-Zeilenvorschubzeichen \r\n. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn kein Windows-Newline-Zeichen gefunden wird, sucht DBMS_CLOUD nach dem UNIX/Linux-Newline-Zeichen \n. Wird dieses gefunden, wird \n für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatztrennzeichen verwenden, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatztrennzeichen verwenden.

    Informationen zur Formatoption recorddelimiter finden Sie unter DBMS_CLOUD Package Format Options.

Beispiel

BEGIN  
   DBMS_CLOUD.CREATE_EXTERNAL_TABLE(   
      table_name =>'WEATHER_REPORT_DOUBLE_DATE',   
      credential_name =>'OBJ_STORE_CRED',   
      file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
      format => json_object('type' value 'csv', 'skipheaders' value '1'),   
      field_list => 'REPORT_DATE DATE''mm/dd/yy'',                   
                     REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
                     ACTUAL_MEAN_TEMP,                 
                     ACTUAL_MIN_TEMP,                 
                     ACTUAL_MAX_TEMP,                 
                     AVERAGE_MIN_TEMP,                    
                     AVERAGE_MAX_TEMP,     
                     AVERAGE_PRECIPITATION',   
      column_list => 'REPORT_DATE DATE,   
                     REPORT_DATE_COPY DATE,
                     ACTUAL_MEAN_TEMP NUMBER,  
                     ACTUAL_MIN_TEMP NUMBER,  
                     ACTUAL_MAX_TEMP NUMBER,  
                     AVERAGE_MIN_TEMP NUMBER,   
                     AVERAGE_MAX_TEMP NUMBER,                  
                     AVERAGE_PRECIPITATION NUMBER');
   END;
/ 

SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where         
   actual_mean_temp > 69 and actual_mean_temp < 74

CREATE_EXTERNAL_TABLE Prozedur für Apache Iceberg

Mit dieser Prozedur werden externe Tabellen für Apache Iceberg-Tabellen in den unterstützten Konfigurationen erstellt.

Eine Beschreibung der unterstützten Konfigurationen finden Sie unter Info zum Abfragen von Apache Iceberg-Tabellen.

Syntax

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB DEFAULT NULL,
    field_list       IN CLOB DEFAULT NULL,
    format           IN CLOB DEFAULT NULL
);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

credential_name

Der Name der Zugangsdaten für den Zugriff auf die Datendateien, die Metadatendateien und den Iceberg-Katalog (falls verwendet).

Bei AWS- und OCI-Konfigurationen müssen die Zugangsdaten wie in der Prozedur CREATE_CREDENTIAL beschrieben erstellt werden.

Zugangsdaten für AWS-Amazon-Ressourcennamen (ARN) werden derzeit nicht unterstützt.

file_uri_list

Muss NULL sein, wenn ein Iceberg-Katalog angegeben ist (siehe Parameter format unten). Wenn kein Eisbergkatalog verwendet wird, muss die file_uri_list die URI für die Eisberg-Metadatendatei enthalten.

column_list

Muss NULL sein, da die Spaltennamen und -typen automatisch aus Iceberg-Metadaten abgeleitet werden.

Die Spaltennamen entsprechen den Namen in den zugrunde liegenden Datendateien (Parquet, Avro, ORC). Die Oracle-Datentypen werden mit den Parquet/Avro/ORC-Mappings zwischen Iceberg und den Datentypen Parquet, Avro und ORC abgeleitet. Daher können Benutzer die column_list nicht angeben.

field_list

Muss NULL sein, da Spaltennamen und Datentypen automatisch aus den Iceberg-Metadaten abgeleitet werden.

format

Der Parameter format hat eine andere Struktur, je nach Typ der Iceberg-Tabelle, AWS oder OCI, und welche Informationen zum Erstellen der externen Tabelle verwendet werden, z.B. Informationen aus einem Datenkatalog oder einer direkten Metadaten-URI.

Beispiele und weitere Informationen finden Sie in den folgenden Beispielen: Iceberg-Unterstützung bei OCI Data Flow-Beispielen, DBMS_CLOUD URI-Formate.

Beispiel für AWS Iceberg-Tabellen mit AWS Glue Catalog

Der Parameter format beim Erstellen von Tabellen über eine AWS Iceberg-Tabelle mit einem AWS Glue Catalog lautet wie folgt:

format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg',
                   'protocol_config' value
                    json_object('iceberg_catalog_type' value 'aws_glue',
                                'iceberg_glue_region'  value 'glue region',
                                'iceberg_table_path'   value 'database_name.table_name'))); 
Dabei enthält der Parameter access_protocol ein JSON-Objekt mit zwei Elementen wie folgt:
  • protocol_type: Muss "Eisberg" sein
  • protocol_config: Ein verschachteltes JSON-Objekt, das die Iceberg-Katalogdetails angibt.
    • iceberg_catalog_type: Muss 'aws_glue' sein.
    • iceberg_glue_region: Die Katalogregion, z.B. 'us-west-1'
    • iceberg_table_path: Ein glue database.glue table name-Pfad.

Beispiel für eine AWS Iceberg-Tabelle mit einem Metadaten-Datei-URI

Der Parameter format beim Erstellen von Tabellen über eine AWS Iceberg-Tabelle mit einem Metadaten-Datei-URI lautet wie folgt:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')

Beispiel für eine OCI Iceberg-Tabelle mit dem Katalog HadoopCatalog

Der Parameter format beim Erstellen von Tabellen über eine OCI Iceberg-Tabelle, die von OCI Data Flow mit dem HadoopCatalog-Katalog erstellt wurde, lautet wie folgt:
format => json_object('access_protocol' value
       json_object('protocol_type'   value 'iceberg',
                   'protocol_config' value
                   json_object('iceberg_catalog_type'  value 'hadoop',
                               'iceberg_warehouse'     value '<OCI folder URI>',
                               'iceberg_table_path'    value 'database_name.table_name')));
Dabei enthält der Parameter access_protocol ein JSON-Objekt mit zwei Elementen wie folgt:
  • protocol_type: Muss 'iceberg' sein.
  • protocol_config: Ein verschachteltes JSON-Objekt, das die Iceberg-Katalogdetails angibt.
    • iceberg_catalog_type: Muss 'hadoop' sein.
    • iceberg_warehouse: Der Warehouse-Verzeichnispfad, der beim Generieren der Tabelle im nativen URI-Format verwendet wird.
    • iceberg_table_path: Der Pfad database_name.table name, der beim Erstellen der Tabelle verwendet wird.

Beispiel für eine OCI Iceberg-Tabelle mit der URI der Metadatendatei

Der Parameter format beim Erstellen von Tabellen über eine OCI Iceberg-Tabelle mit der URI der Metadatendatei lautet wie folgt:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')
Dabei enthält der Parameter access_protocol ein JSON-Objekt mit einem Element wie folgt:
  • protocol_type: Muss 'iceberg' sein.

Prozedur CREATE_EXTERNAL_TABLE für Avro-, ORC- oder Parkettdateien

Diese Prozedur mit dem format-Parameter type, der auf den Wert avro, orc oder parquet gesetzt ist, erstellt eine externe Tabelle mit Dateien im Avro-, ORC- oder Parquet-Format in der Cloud oder in einem Verzeichnis.

So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.

Syntax

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB,
    field_list       IN CLOB DEFAULT,
    format           IN CLOB DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit file_uri_list angeben.

file_uri_list

Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an.

URIs für Cloud-Quelldatei

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch.

Diese Option wird nur bei externen Tabellen unterstützt, die für eine Datei im Object Storage erstellt werden.

Beispiele:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.parquet'

Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet:'MY_DIR:filename.ext'. Standardmäßig ist der Verzeichnisname MY_DIR ein Datenbankobjekt, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beachten Sie beim Dateinamen die Groß-/Kleinschreibung.

Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: 'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. Beispiel:'MY_DIR1:*, MY_DIR2:test?'

Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: '"my_dir1":*, "my_dir2":Test?'

Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: 'MY_DIR:''filename.ext'. Gibt an, dass filename mit einem Anführungszeichen (') beginnt.

column_list

(Optional) Wenn dieses Feld angegeben ist, überschreibt es den Parameter format->schema, der angibt, dass das Schema, die Spalten und die Datentypen automatisch abgeleitet werden. Weitere Informationen finden Sie beim Parameter "format".

Wenn column_list für eine Avro-, ORC- oder Parquet-Quelle angegeben ist, müssen die Spaltennamen mit den Spalten in der Datei übereinstimmen. Oracle-Datentypen müssen den Datentypen Avro, ORC oder Parquet entsprechend zugeordnet werden.

Informationen zu Parquet-Dateien finden Sie unter DBMS_CLOUD Package Parquet to Oracle Data Type Mapping.

Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD Package ORC to Oracle Data Type Mapping.

Informationen zu Avro-Dateien finden Sie unter DBMS_CLOUD Package Avro to Oracle Data Type Mapping.

field_list

Wird für Avro-, ORC- oder Parkettdateien ignoriert.

Die Felder in der Quelle entsprechen den Spalten der externen Tabelle nach Namen. Quelldatentypen werden in den Datentyp der Spalte der externen Tabelle konvertiert.

Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von ORC zu Oracle

Informationen zu Parquet-Dateien finden Sie unter DBMS_CLOUD Package Parquet to Oracle Data Type Mapping.

Informationen zu Avro-Dateien finden Sie unter DBMS_CLOUD Package Avro to Oracle Data Type Mapping.

format

Weitere Informationen zu Avro-, ORC- oder Parquet-type-Quelldateien finden Sie unter DBMS_CLOUD-Paketformatoptionen für Avro, ORC oder Parquet.

Beispiele: ORC

format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')

Beispiele: Avro

format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')

Beispiele: Parquet

format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')

Zuordnung von Avro-, ORC- oder Parquet-Spaltennamen zu Oracle-Spaltennamen

Unter DBMS_CLOUD Spaltennamenszuordnung von Avro, ORC und Parquet zu Oracle finden Sie Informationen zur Zuordnung von Spaltennamen und zur Verwendung der Konvertierung von Spaltennamen in Oracle SQL.

Prozedur CREATE_EXTERNAL_TEXT_INDEX

Diese Prozedur erstellt einen Textindex für Object Storage-Dateien.

Die Prozedur CREATE_EXTERNAL_TEXT_INDEX erstellt einen Textindex für die Objektspeicherdateien, die im Speicherort location_uri angegeben sind. Der Index wird in regelmäßigen Abständen für alle neuen Ergänzungen oder Löschungen aktualisiert, die mit Dateien im Speicherort-URI ausgeführt werden.

Syntax

DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
      credential_name  IN  VARCHAR2 DEFAULT NULL,
      location_uri     IN  VARCHAR2,
      index_name       IN  VARCHAR2,
      format           IN  CLOB     DEFAULT NULL
);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicherort. Bei öffentlichen, vorab authentifizierten oder vorab signierten Bucket-URIs kann ein NULL-Wert angegeben werden.

Weitere Informationen finden Sie unter Policys und Rollen für den Zugriff auf Ressourcen konfigurieren.

Wenn Sie keinen credential_name-Wert angeben, wird credential_name auf den Wert NULL gesetzt.

location_uri

Gibt den Objektspeicher-Bucket oder die Ordner-URI an.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

index_name Gibt den Namen des Index an, den Sie für die Dateien im Verzeichnis location_uri erstellen.

Dieser Parameter ist erforderlich.

format

Gibt zusätzliche Konfigurationsoptionen an. Optionen werden als JSON-Zeichenfolge angegeben.

Folgende Formatoptionen werden unterstützt:

refresh_rate: Gibt die Häufigkeit in Minuten an, mit der der lokale Index aktualisiert wird. Neue Dateiuploads und -löschungen führen zu einer Indexaktualisierung. Der Standardwert beträgt 5 Minuten.

binary_files: Gibt an, ob der Inhalt der zu indexierenden Dateien binär ist. Beispiel: PDF, MS-Word. Der Standardwert ist FALSE.

json_index: Gibt an, ob der Inhalt der zu indexierenden Dateien JSON oder Zeilen-JSON ist. Der Standardwert ist FALSE.

json_index_doc_sep: Gibt das Trennzeichen an, das für die Vorabverarbeitung von JSON-Zeilendokumenten verwendet wird. Der Standardwert ist '\n' (neue Zeile).

json_index_doc_len: Gibt die Länge jedes JSON-Dokuments im Objekt an. Der Standardwert ist 32767 und der Höchstwert 200000.

file_compression: Gibt das Komprimierungsformat der JSON-Dateien an. Der Standardwert ist gzip.

stop_words: Gibt eine Liste der Stoppwörter an, die beim Erstellen von Indizes angegeben werden können.

Der Wert stop_words gibt an, ob es sich um eine Liste mit Stoppwörtern oder eine Tabelle mit Stoppwörtern handelt. Wenn ein JSON-Array den Parameter "Stoppwörter" bereitstellt, wird er als Liste behandelt. Andernfalls wird der Parameter "Stoppwörter" als Tabellenname behandelt, dessen Spalte "STOP_WORDS" zum Lesen in der Liste der Stoppwörter verwendet wird.

Sie können Stoppwörter mit den folgenden Methoden angeben:

  • JSON-Array: Beispiel: format := '{"stop_words":["king","queen"]}'
  • Name der Stoppworttabelle: Beispiel: format := '{"stop_words":"STOP_WORDS_TABLE"}'

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

Beispiel

BEGIN 
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
        credential_name => 'DEFAULT_CREDENTIAL',
        location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
        index_name      => 'EMP',
        format          => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/

Prozedur CREATE_HYBRID_PART_TABLE

Diese Prozedur erstellt eine Hybrid-partitionierte Tabelle. Auf diese Weise können Sie Abfragen für hybride partitionierte Daten aus Autonomous Database mit Datenbankobjekten und -dateien in der Cloud oder mit Datenbankobjekten und -dateien in einem Verzeichnis ausführen.

Syntax

DBMS_CLOUD.CREATE_HYBRID_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    partitioning_clause  IN CLOB,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

partitioning_clause

Gibt die vollständige PartitionierungsKlausel an, einschließlich der Speicherortinformationen für einzelne Partitionen.

Um Verzeichnisse zu verwenden, unterstützt die Partitionierungsklausel die Werte LOCATION und DEFAULT DIRECTORY.

Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden.

Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter regexuri format auf TRUE gesetzt ist.

Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter regexuri auf FALSE gesetzt ist. Wenn der Parameter regexuri auf TRUE gesetzt ist, sind die Zeichen "*" und "?" Teil des angegebenen regulären Ausdrucksmusters.

Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion REGEXP_LIKE identisch. Reguläre Ausdrucksmuster werden für Verzeichnisnamen nicht unterstützt.

Beispiele:

partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
				    ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.txt''),….

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter REGEXP_LIKE-Bedingung.

column_list

Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle.

field_list

Gibt die Felder in den Quelldateien und deren Datentypen an. Der Standardwert ist NULL, d.h. die Felder und ihre Datentypen werden durch den Parameter column_list bestimmt. Die Syntax dieses Arguments entspricht der field_list-Klausel in regulären externen Oracle-Tabellen. Weitere Informationen zu field_list finden Sie unter Oracle® Database-Utilitys.

format

Die Optionen, die das Format der Quelldateien beschreiben. Die Liste der Optionen und Informationen zum Angeben der Werte finden Sie unter DBMS_CLOUD Packageformatoptionen.

Hinweise zur Verwendung

  • Die Prozedur DBMS_CLOUD.CREATE_HYBRID_PART_TABLE unterstützt externe partitionierte Dateien in den unterstützten Cloud-Object Storage-Services, darunter:

    • Oracle Cloud Infrastructure Object Storage

    • Azure Blob Storage oder Azure Data Lake Storage

    • Amazon S3

    • Amazon S3-Kompatible, darunter: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage und Wasabi Hot Cloud Storage.

    • GitHub-Repository

    Die Zugangsdaten stellen eine Eigenschaft auf Tabellenebene dar. Daher müssen sich die externen Dateien in demselben Objektspeicher befinden.

    Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

  • Die Prozedur DBMS_CLOUD.CREATE_HYBRID_PART_TABLE unterstützt hybride partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem.

  • Die externen partitionierten Tabellen, die Sie mit DBMS_CLOUD.CREATE_HYBRID_PART_TABLE erstellen, enthalten zwei unsichtbare Spalten: file$path und file$name. Anhand dieser Spalten können Sie ermitteln, aus welcher Datei ein Datensatz stammt.

    • file$path: Gibt den Dateipfadtext am Anfang des Objektnamens an.

    • file$name: Gibt den Objektnamen an, einschließlich dem gesamten Text, der auf den Bucket-Namen folgt.

Beispiele

BEGIN  
   DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
      table_name =>'HPT1',  
      credential_name =>'OBJ_STORE_CRED',  
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
      column_list => 'col1 number, col2 number, col3 number',
      partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
                                    ( ''&base_URL/file_11.txt'')
                                 ,
                                 partition p2 values less than (2000) external location
                                    ( ''&base_URL/file_21.txt'')
                                 ,
                                 partition p3 values less than (3000)
                                 )'
     );
   END;
/ 


BEGIN
   DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
    table_name  => 'HPT1',
    format      => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
    column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
    partitioning_clause => 'partition by range (B  2  ALANCE)
               (partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
                partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
                partition p3 values less than (3000))' );
END;
/

Prozedur DELETE_ALL_OPERATIONS

Diese Prozedur löscht entweder alle in der Tabelle user_load_operations in Ihrem Schema protokollierten Dataload-Vorgänge oder alle Dataload-Vorgänge des angegebenen Typs, wie mit dem Parameter type angegeben.

Syntax

DBMS_CLOUD.DELETE_ALL_OPERATIONS (
	type      IN VARCHAR DEFAULT NULL);

Parameter

Parameter Beschreibung

type

Gibt den zu löschenden Vorgangstyp an. Typwerte finden Sie in der Spalte TYPE in der Tabelle user_load_operations.

Wenn kein type angegeben wird, werden alle Zeilen gelöscht.

Hinweise zur Verwendung

  • Dieses Verfahren löscht derzeit laufende Vorgänge (Vorgänge mit dem Status "Wird ausgeführt") nicht.

  • Diese Prozedur löscht alle Loggingtabellen und Logdateien, die mit den Vorgängen verknüpft sind.

Prozedur DELETE_FILE

Diese Prozedur entfernt die angegebene Datei aus dem angegebenen Verzeichnis in Autonomous Database.

Syntax

 DBMS_CLOUD.DELETE_FILE ( 
       directory_name     IN VARCHAR2,
       file_name          IN VARCHAR2,
       force              IN BOOLEAN DEFAULT FALSE); 

Parameter

Parameter Beschreibung

directory_name

Der Name des Verzeichnisses in der Autonomous Database-Instanz.

file_name

Der Name der zu entfernenden Datei.

force

Ignorieren und melden Sie keine Fehler, wenn die Datei nicht vorhanden ist. Gültige Werte: TRUE und FALSE. Der Standardwert ist FALSE.

Hinweis

Um DBMS_CLOUD.DELETE_FILE mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Schreibberechtigungen für das Verzeichnis erteilen, das die Datei enthält. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user Schreibberechtigungen zu erteilen:
GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;

Beispiel

BEGIN
   DBMS_CLOUD.DELETE_FILE(
      directory_name =>  'DATA_PUMP_DIR',
      file_name => 'exp1.dmp' );
   END;
/ 

Prozedur DELETE_OBJECT

Diese Prozedur löscht das angegebene Objekt im Objektspeicher.

Syntax

DBMS_CLOUD.DELETE_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       force                IN BOOLEAN DEFAULT FALSE);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

object_uri

Objekt- oder Datei-URI des zu löschenden Objekts. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

force

Ignorieren Sie Fehler, und melden Sie sie nicht, wenn das Objekt nicht vorhanden ist. Gültige Werte: TRUE und FALSE. Der Standardwert ist FALSE.

Beispiel

BEGIN
   DBMS_CLOUD.DELETE_OBJECT(
       credential_name => 'DEF_CRED_NAME',
       object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
   END;
/ 

Prozedur DELETE_OPERATION

Diese Prozedur löscht die Dataload-Einträge für die angegebene Vorgangs-ID, die in den Tabellen user_load_operations oder dba_load_operations in Ihrem Schema protokolliert wurde.

Syntax

DBMS_CLOUD.DELETE_OPERATION (
	id      IN NUMBER);

Parameter

Parameter Beschreibung

id

Gibt die Vorgangs-ID an, die mit den Logdateieinträgen verknüpft ist, die Sie löschen möchten.

Hinweis zur Verwendung

  • Diese Prozedur löscht alle Loggingtabellen und Logdateien, die mit der in der Eingabe angegebenen Vorgangs-ID verknüpft sind.

Beispiel

SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);

Prozedur DROP_EXTERNAL_TEXT_INDEX

Diese Prozedur löscht den Textindex für die Object Storage-Dateien.

Die Prozedur DROP_EXTERNAL_TEXT_INDEX löscht den angegebenen Index, der mit der Prozedur CREATE_EXTERNAL_TEXT_INDEX erstellt wurde.

Syntax

DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
      index_name       IN  VARCHAR2,
);

Parameter

Parameter Beschreibung
index_name

Gibt den Namen des Index an, den Sie löschen.

Der Indexname muss mit dem zum Zeitpunkt der Indexerstellung angegebenen Namen übereinstimmen.

Dieser Parameter ist erforderlich.

Beispiel

BEGIN 
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
        index_name => 'EMP',
);
END;
/

EXPORT_DATA-Prozedur

Diese Prozedur exportiert Daten aus Autonomous Database basierend auf dem Ergebnis einer Abfrage. Diese Prozedur ist überladen und unterstützt das Schreiben von Dateien in die Cloud oder in ein Verzeichnis.

Basierend auf dem Parameter format type exportiert die Prozedur Dateien als Textdateien im CSV-, JSON-, Parquet- oder XML-Format in die Cloud oder in ein Verzeichnis oder schreibt Daten mit dem Zugriffstreiber ORACLE_DATAPUMP in eine Oracle Datapump-Dumpdatei.

Syntax

DBMS_CLOUD.EXPORT_DATA (
      credential_name   IN VARCHAR2 DEFAULT NULL,
      file_uri_list     IN CLOB,
      format            IN CLOB,
      query             IN CLOB);

DBMS_CLOUD.EXPORT_DATA (
      credential_name   IN VARCHAR2 DEFAULT NULL,
      file_uri_list     IN CLOB DEFAULT NULL,
      format            IN CLOB DEFAULT NULL,
      query             IN CLOB DEFAULT NULL,
      operation_id      OUT NOCOPY NUMBER);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn der Zugangsdatenparameter nicht enthalten ist, wird die Ausgabe in ein Verzeichnis angegeben.

file_uri_list

Je nach Formatparameterwert und je nachdem, ob Sie einen Zugangsdatenparameter aufnehmen, gibt es verschiedene Formen:
  • Wenn der format-Parameter type den Wert json hat: Die JSON-Datei im Objektspeicher oder im angegebenen Verzeichnisspeicherort wird mit einem generierten Dateinamen basierend auf dem Wert des Parameters file_uri_list gespeichert. Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).

  • Wenn der format-Parameter type den Wert datapump hat, ist file_uri_list eine durch Komma getrennte Liste der Dumpdateien. Gibt die Dateien an, die im Objektspeicher erstellt werden sollen. Die Verwendung von Platzhalter- und Ersetzungszeichen wird in file_uri_list nicht unterstützt.

  • Wenn der Parameter credential_name nicht angegeben ist, geben Sie einen Verzeichnisnamen in file_uri_list an.

Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

format

Eine JSON-Zeichenfolge mit Optionen für Exportformate.

Die unterstützte Option ist:

  • type: Die format-Option type ist erforderlich und muss einen der folgenden Werte aufweisen: csv | datapump | json | parquet | xml.

Siehe DBMS_CLOUD Package Format Options for EXPORT_DATA.

query

Geben Sie mit diesem Parameter eine SELECT-Anweisung an, mit der nur die erforderlichen Daten exportiert werden. Die Abfrage bestimmt den Inhalt der Dateien, die Sie als CSV-, JSON-, Parquet- oder XML- oder Dumpdateien exportieren. Beispiele:

SELECT warehouse_id, quantity FROM inventories

Weitere Informationen zum Format-type-Wert datapump finden Sie unter Oracle Data Pump-Exportdatenfilter und Daten mit dem ORACLE_DATAPUMP-Zugriffstreiber entladen und laden.

Wenn format type den Wert json hat, wird jedes Abfrageergebnis aktiviert. Wenn es, wie mit der Funktion JSON_OBJECT_T.parse() bestimmt, nicht JSON ist, transformiert DBMS_CLOUD.EXPORT_DATA die Abfrage so, dass die Funktion JSON_OBJECT aufgenommen wird, um die Zeile in JSON zu konvertieren. Weitere Informationen finden Sie unter JSON_OBJECT_T Objekttyp.

Beispiele:

SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories)

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Exportvorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Hinweise zur Verwendung:

  • Der von Ihnen angegebene query-Parameterwert kann bei Bedarf eine erweiterte Abfrage sein, z.B. eine Abfrage, die Joins oder Unterabfragen enthält.

  • Je nach angegebenem Formatparameter gibt DBMS_CLOUD.EXPORT_DATA die Ergebnisse der angegebenen Abfrage im Cloud-Objektspeicher oder in einem Verzeichnis in einem der folgenden Formate aus:

  • Bei einer CSV-, JSON- oder XML-Ausgabe wird standardmäßig eine neue Ausgabedatei erstellt, wenn eine generierte Datei 10 MB Daten enthält. Wenn Sie jedoch weniger als 10 MB an Ergebnisdaten haben, sind möglicherweise mehrere Ausgabedateien vorhanden, abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Autonomous Database-Instanz.

    Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).

    Die Standard-Ausgabedatei-Chunk-Größe beträgt 10 MB für CSV, JSON oder XML. Sie können diesen Wert mit dem Parameter format und der Option maxfilesize ändern. Weitere Informationen finden Sie unter DBMS_CLOUD Packageformatoptionen für EXPORT_DATA.

  • Für die Parquet-Ausgabe ist jede generierte Datei kleiner als 128 MB, und es können mehrere Ausgabedateien generiert werden. Wenn Sie jedoch weniger als 128 MB an Ergebnisdaten haben, sind abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Autonomous Database-Instanz möglicherweise mehrere Ausgabedateien vorhanden.

    Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).

Hinweise zur Verwendung der ORACLE_DATAPUMP-Ausgabe (DBMS_CLOUD.EXPORT_DATA mit dem format-Parameter type, Option datapump):

  • EXPORT_DATA verwendet DATA_PUMP_DIR als Standardloggingverzeichnis. Daher ist die Schreibberechtigung für DATA_PUMP_DIR erforderlich, wenn Sie die Ausgabe ORACLE_DATAPUMP verwenden.

  • Der Autonomous Database-Export mit DBMS_CLOUD.EXPORT_DATA und dem format-Parameter type, Option datapump, unterstützt nur Oracle Cloud Infrastructure Object Storage, Oracle Cloud Infrastructure Object Storage Classic-Objektspeicher oder Verzeichnisausgabe.

  • Wenn Sie DBMS_CLOUD.EXPORT_DATA mit dem Parameter format der Option type datapump angeben, darf der Parameterwert credential_name kein OCI-Ressourcen-Principal sein.

  • Oracle Data Pump unterteilt jeden Teil der Dumpdatei in kleinere Chunks, um schnellere Uploads zu ermöglichen. In der Oracle Cloud Infrastructure Object Storage-Konsole werden für jeden exportierten Teil der Dumpdatei mehrere Dateien angezeigt. Die Größe der tatsächlichen Dumpdateien wird als null (0) angezeigt und die Größe der zugehörigen Datei-Chunks als 10 MB oder weniger. Beispiele:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    Wenn Sie die Null-Byte-Dumpdatei aus der Oracle Cloud Infrastructure-Konsole oder mit der Oracle Cloud Infrastructure-CLI herunterladen, erhalten Sie nicht die vollständigen Dumpdateien. Um die vollständigen Dumpdateien aus dem Objektspeicher herunterzuladen, verwenden Sie ein Tool wie cURL, das Swift unterstützt. Geben Sie Ihre Benutzeranmeldung und Ihr Swift-Authentifizierungstoken an.
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp

    Wenn Sie eine Datei mit den DBMS_CLOUD-Prozeduren importieren, die den format-Parameter type mit dem Wert datapump unterstützen, müssen Sie nur den primären Dateinamen angeben. Die Prozeduren, die den Formattyp "datapump" unterstützen, ermitteln die Chunks und laden sie automatisch herunter.

    Wenn Sie DBMS_CLOUD.DELETE_OBJECT verwenden, werden die Chunks automatisch von der Prozedur erkannt und gelöscht, wenn die Prozedur die primäre Datei löscht.

  • Die Prozedur DBMS_CLOUD.EXPORT_DATA erstellt die Dumpdatei(en) wie folgt aus den von Ihnen angegebenen file_uri_list-Werten:

    • Wenn weitere Dateien benötigt werden, erstellt die Prozedur zusätzliche Dateien aus file_uri_list.

    • Die Prozedur überschreibt keine Dateien. Wenn eine Dumpdatei in der file_uri_list vorhanden ist, meldet DBMS_CLOUD.EXPORT_DATA einen Fehler.

    • DBMS_CLOUD.EXPORT_DATA erstellt keine Buckets.

  • Die Anzahl der Dumpdateien, die DBMS_CLOUD.EXPORT_DATA generiert, wird bei Ausführung der Prozedur bestimmt. Die Anzahl der generierten Dumpdateien hängt von der Anzahl der Dateinamen ab, die Sie im Parameter file_uri_list angeben, sowie von der Anzahl der für die Instanz verfügbaren Autonomous Database-OCPUs, dem Servicelevel und der Größe der Daten.

    Beispiel: Wenn Sie eine Autonomous Database-Instanz mit 1 OCPU oder den Service low verwenden, wird eine einzelne Dumpdatei ohne Parallelisierung exportiert, selbst wenn Sie mehrere Dateinamen angeben. Wenn Sie eine Autonomous Database-Instanz mit 4 OCPUs mit dem Service medium oder high verwenden, können die Jobs parallel ausgeführt werden. Wenn Sie mehrere Dateinamen angeben, werden mehrere Dumpdateien exportiert.

  • Die Dumpdateien, die Sie mit DBMS_CLOUD.EXPORT_DATA erstellen, können nicht mit dem Oracle Data Pump-Befehl impdp importiert werden. Abhängig von der Datenbank können Sie folgende Dateien verwenden:

    • In einer Autonomous Database können Sie die Dumpdateien mit den DBMS_CLOUD-Prozeduren verwenden, die den format-Parameter type mit dem Wert "datapump" unterstützen. Sie können die Dumpdateien mit DBMS_CLOUD.COPY_DATA importieren oder DBMS_CLOUD.CREATE_EXTERNAL_TABLE aufrufen, um eine externe Tabelle zu erstellen.

    • In jeder anderen Version von Oracle Database, wie Oracle Database 19c On Premise, können Sie die mit der Prozedur DBMS_CLOUD.EXPORT_DATA erstellten Dumpdateien mit dem Zugriffstreiber ORACLE_DATAPUMP importieren. Weitere Informationen finden Sie unter Daten mit dem Zugriffstreiber ORACLE_DATAPUMP entladen und laden.

  • Der von Ihnen angegebene query-Parameterwert kann bei Bedarf eine erweiterte Abfrage sein, z.B. eine Abfrage, die Joins oder Unterabfragen enthält.

Hinweise zur Verwendung von DBMS_CLOUD.EXPORT_DATA mit Ausgabe in ein Verzeichnis

  • Das angegebene Verzeichnis muss vorhanden sein, und Sie müssen als Benutzer ADMIN angemeldet sein oder WRITE-Zugriff auf das Verzeichnis haben.

  • DBMS_CLOUD.EXPORT_DATA erstellt keine Verzeichnisse.

  • Die Prozedur überschreibt keine Dateien. Beispiel: Wenn eine Dumpdatei in der file_uri_list vorhanden ist, meldet DBMS_CLOUD.EXPORT_DATA einen Fehler wie:

    ORA-31641: unable to create dump file  "/u02/exports/123.dmp"
    ORA-27038: created file already exists

Beispiele

Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA mit dem Formatparameter type mit dem Wert datapump:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name =>'OBJ_STORE_CRED',
      file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp',
      format => json_object('type' value 'datapump', 'compression' value 'basic', 'version' value 'latest'),
      query => 'SELECT warehouse_id, quantity FROM inventories'
     );
   END;
/  

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA mit dem Formatparameter type mit dem Wert json:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
     );
   END;
/  

Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA mit dem Formatparameter type mit Wert xml:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
     );
   END;
/

Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA mit dem Formatparameter type mit Wert csv:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true, 'encryption' value ('user_defined_function' value 'ADMIN.decryption_callback')));
     );
   END;
/  

Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA, wie Daten in ein Verzeichnis mit dem Parameter type mit dem Wert datapump exportiert werden:

BEGIN
 DBMS_CLOUD.EXPORT_DATA(
    file_uri_list => 'export_dir:sales.dmp',
    format        => json_object('type' value 'datapump'),
    query         => 'SELECT * FROM sales'
 );
END;
/

GET_OBJECT Prozedur und Funktion

Diese Prozedur ist überladen. Die Prozedurform liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous Database. Die Funktionsform liest ein Objekt aus dem Cloud-Objektspeicher und gibt ein BLOB an Autonomous Database zurück.

Syntax

DBMS_CLOUD.GET_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2 DEFAULT  NULL,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.GET_OBJECT(
       credential_name      IN VARCHAR2 DEFAULT NULL,
       object_uri           IN VARCHAR2,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL)
RETURN BLOB;

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

object_uri

Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

directory_name

Der Name des Verzeichnisses in der Datenbank.

Fuß 1
Sie können eine Tabellen-Hyperlink-URL wie folgt verwenden:
  • Geben Sie eine einzelne Hyperlink-URL für Autonomous Database-Tabellen an.

  • Geben Sie eine durch Komma getrennte Liste der Autonomous Database-Tabellen-Hyperlinks-URLs an. Stellen Sie sicher, dass alle enthaltenen Tabellen-Hyperlinks dieselben Spaltennamen, dieselbe Spaltenreihenfolge und dieselben Spaltendatentypen in demselben Schema aufweisen müssen.

Weitere Informationen finden Sie unter Informationen zu Tabellenhyperlinks in Autonomous Database und Prozedur GET_PREAUTHENTICATED_URL.

file_name

Gibt den Namen der zu erstellenden Datei an. Wenn kein Dateiname angegeben wird, wird der Dateiname nach dem letzten Schrägstrich im Parameter object_uri verwendet. Verwenden Sie in Sonderfällen, z.B. wenn der Dateiname Schrägstriche enthält, den Parameter file_name.

startoffset

Der Offset in Byte, ab dem die Prozedur mit dem Lesen beginnt.

endoffset

Der Offset in Byte, bei dem die Prozedur den Lesevorgang beendet.

compression

Gibt die Komprimierung an, mit der das Objekt gespeichert wird. Wenn compression auf ‘AUTO’ gesetzt ist, wird die Datei dekomprimiert (der Wert ‘AUTO’ impliziert, dass das mit object_uri angegebene Objekt mit Gzip komprimiert ist).

Fußnote 1

Hinweis

Um DBMS_CLOUD.GET_OBJECT mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer WRITE-Berechtigungen für das Verzeichnis erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user Schreibberechtigungen zu erteilen:

GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;

Werte zurückgeben

Die Funktionsform liest aus dem Objektspeicher, und DBMS_CLOUD.GET_OBJECT gibt ein BLOB zurück.

Beispiele

BEGIN 
   DBMS_CLOUD.GET_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
     directory_name => 'DATA_PUMP_DIR'); 
END;
/

So lesen Sie Zeichendaten aus einer Datei im Objektspeicher:

SELECT to_clob(
     DBMS_CLOUD.GET_OBJECT(
       credential_name => 'OBJ_STORE_CRED',
       object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;

So fügen Sie ein im Objektspeicher gespeichertes Bild einem BLOB in der Datenbank hinzu:


DECLARE
   l_blob BLOB := NULL;
BEGIN
   l_blob := DBMS_CLOUD.GET_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

LIST_FILES-Funktion

Diese Funktion listet die Dateien im angegebenen Verzeichnis auf. Die Ergebnisse umfassen die Dateinamen und zusätzliche Metadaten zu den Dateien, wie die Dateigröße in Byte sowie die Zeitstempel der Erstellung und der letzten Änderung.

Syntax

DBMS_CLOUD.LIST_FILES (
	directory_name      IN VARCHAR2)
       RETURN TABLE;

Parameter

Parameter Beschreibung

directory_name

Der Name des Verzeichnisses in der Datenbank.

Hinweise zur Verwendung

  • Um DBMS_CLOUD.LIST_FILES mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user Leseberechtigungen zu erteilen:

    GRANT READ ON DIRECTORY data_pump_dir TO adb_user;
  • Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp DBMS_CLOUD_TYPES.list_object_ret_t.

  • DBMS_CLOUD.LIST_FILES ruft den Prüfsummenwert nicht ab und gibt NULL für dieses Feld zurück.

Beispiel

Dies ist eine Pipelinefunktion, die eine Zeile für jede Datei zurückgibt. Beispiel: Verwenden Sie die folgende Abfrage, um diese Funktion zu verwenden:

SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR');

OBJECT_NAME       BYTES   CHECKSUM      CREATED              LAST_MODIFIED
------------ ---------- ----------    ---------------------  ---------------------
cwallet.sso        2965               2018-12-12T18:10:47Z   2019-11-23T06:36:54Z

Funktion LIST_OBJECTS

Diese Funktion listet Objekte am angegebenen Speicherort im Objektspeicher auf. Die Ergebnisse umfassen die Objektnamen und zusätzliche Metadaten zu den Objekten, wie Größe, Prüfsumme sowie Zeitstempel der Erstellung und der letzten Änderung.

Syntax

DBMS_CLOUD.LIST_OBJECTS (
       credential_name      IN VARCHAR2,
       location_uri         IN VARCHAR2)
   RETURN TABLE;

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

location_uri

Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

Hinweise zur Verwendung

  • In diesem Fall gibt DBMS_CLOUD.LIST_OBJECTS keine Werte für bestimmte Attribute zurück, und der Rückgabewert für das Feld ist NULL.

    Alle unterstützten Objektspeicher geben Werte für die Felder OBJECT_NAME, BYTES und CHECKSUM zurück.

    Die folgende Tabelle zeigt die Unterstützung für die Felder CREATED und LAST_MODIFIED nach Objektspeicher:

    Objektspeicher CREATED LAST_MODIFIED
    Oracle Cloud Infrastructure-nativ Gibt Zeitstempel zurück Gibt Zeitstempel zurück
    Oracle Cloud Infrastructure-Swift Gibt NULL zurück Gibt Zeitstempel zurück
    Oracle Cloud Infrastructure Classic Gibt NULL zurück Gibt Zeitstempel zurück
    Amazon S3 Gibt NULL zurück Gibt Zeitstempel zurück
    Amazon S3-kompatibel Gibt NULL zurück Gibt Zeitstempel zurück
    Azure Gibt Zeitstempel zurück Gibt Zeitstempel zurück
    GitHub-Repository    
  • Der Prüfsummenwert ist die MD5-Prüfsumme. Hierbei handelt es sich um eine Hexadezimalzahl mit 32 Zeichen, die auf dem Objektinhalt berechnet wird. Es wird ein anderer Prüfsummenwert erwartet, wenn OCI$RESOURCE_PRINCIPAL-Zugangsdaten verwendet werden.

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

Beispiel

Dies ist eine Pipelinefunktion, die eine Zeile für jedes Objekt zurückgibt. Beispiel: Verwenden Sie die folgende Abfrage, um diese Funktion zu verwenden:

SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('OBJ_STORE_CRED', 
    'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');


OBJECT_NAME   BYTES              CHECKSUM                       CREATED         LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso   2965      2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z          

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Prozedur MOVE_OBJECT

Mit dieser Prozedur wird ein Objekt von einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen verschoben.

Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.

Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.

Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname für das Ziel angegeben ist.

Syntax

DBMS_CLOUD.MOVE_OBJECT (
    source_credential_name  IN  VARCHAR2 DEFAULT NULL,
    source_object_uri       IN  VARCHAR2,
    target_object_uri       IN  VARCHAR2,
    target_credential_name  IN  VARCHAR2 DEFAULT NULL
);

Parameter

Parameter Beschreibung

source_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Quell-Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen source_credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

source_object_uri

Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_object_uri

Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien verschoben werden müssen.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen target_credential_name-Wert angeben, wird target_object_uri auf den Wert source_credential_name gesetzt.

Beispiel

BEGIN 
DBMS_CLOUD.MOVE_OBJECT (
    source_credential_name => 'OCI_CRED',
    source_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
    target_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/

Prozedur PUT_OBJECT

Diese Prozedur ist überladen. In einer Form kopiert die Prozedur eine Datei aus Autonomous Database in den Cloud-Objektspeicher. In einer anderen Form kopiert die Prozedur ein BLOB aus Autonomous Database in den Cloud-Objektspeicher.

Syntax

DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       contents             IN BLOB
       compression          IN VARCHAR2 DEFAULT  NULL);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

object_uri

Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate.

directory_name

Der Name des Verzeichnisses in der Autonomous Database.

Fuß 2

contents

Gibt die BLOB an, die aus Autonomous Database in den Cloud-Objektspeicher kopiert werden soll.

file_name

Der Name der Datei im angegebenen Verzeichnis.

compression

Gibt die Komprimierung an, mit der das Objekt gespeichert wird.

Standardwert: NULL

Fußnote 2

Hinweis

Um DBMS_CLOUD.PUT_OBJECT mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user Leseberechtigungen zu erteilen:

GRANT READ ON DIRECTORY data_pump_dir TO adb_user;

Beispiel

So verarbeiten Sie BLOB-Daten nach der Datenbankverarbeitung und speichern die Daten dann direkt in einer Datei im Objektspeicher:

DECLARE
      my_blob_data BLOB;
BEGIN 
 /* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
     contents => my_blob_data)); 
END;
/

Hinweise zur Verwendung

Abhängig von Ihrem Cloud-Objektspeicher ist die Größe des übertragenen Objekts wie folgt begrenzt:

Cloud-Object Storage-Service Größenlimit für Objektübertragung

Oracle Cloud Infrastructure Object Storage

50 GB

Amazon S3

5 GB

Azure Blob Storage oder Azure Data Lake Storage

256 MB

Amazon S3-kompatibel

Wird vom Objektspeicherprovider festgelegt. Weitere Informationen finden Sie in der Dokumentation des Providers.

Der Oracle Cloud Infrastructure-Objektspeicher lässt das Schreiben von Dateien in einen öffentlichen Bucket ohne Angabe von Zugangsdaten nicht zu (mit Oracle Cloud Infrastructure können Benutzer Objekte aus öffentlichen Buckets herunterladen). Daher müssen Sie einen Zugangsdatennamen mit gültigen Zugangsdaten angeben, um ein Objekt in einem öffentlichen Oracle Cloud Infrastructure-Bucket mit PUT_OBJECT zu speichern.

Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

Prozedur SYNC_EXTERNAL_PART_TABLE

Diese Prozedur vereinfacht das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud. Führen Sie diese Prozedur aus, wenn neue Partitionen hinzugefügt werden oder wenn Partitionen aus der Objektspeicherquelle für die externe partitionierte Tabelle entfernt werden.

Syntax

DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
	table_name        IN VARCHAR2,
	schema_name       IN VARCHAR2 DEFAULT,
	update_columns    IN BOOLEAN DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der Zieltabelle. Die Zieltabelle muss erstellt werden, bevor Sie DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE ausführen.

schema_name

Der Name des Schemas, in dem sich die Zieltabelle befindet. Der Standardwert ist NULL, d.h. die Zieltabelle befindet sich im selben Schema wie der Benutzer, der die Prozedur ausführt.

update_columns

Die neuen Dateien können zu einer Änderung des Schemas führen. Die unterstützten Aktualisierungen umfassen: neue Spalten, gelöschte Spalten. Aktualisierungen vorhandener Spalten, z.B. eine Änderung des Datentyps, führen zu Fehlern.

Standardwert: False

Prozedur VALIDATE_EXTERNAL_PART_TABLE

Diese Prozedur validiert die Quelldateien für eine externe partitionierte Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Syntax

DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
       table_name                 IN VARCHAR2,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
       table_name                 IN VARCHAR2,
       operation_id               OUT NUMBER,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

partition_name

Wenn definiert, wird nur eine bestimmte Partition validiert. Wenn keine Angabe gemacht wird, werden alle Partitionen nacheinander gelesen, bis rowcount erreicht ist.

subpartition_name

Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, wird aus allen externen Partitionen oder Unterpartitionen nacheinander gelesen, bis rowcount erreicht ist.

schema_name

Der Name des Schemas, in dem sich die externe Tabelle befindet. Der Standardwert ist NULL, d.h. die externe Tabelle befindet sich im selben Schema wie der Benutzer, der die Prozedur ausführt.

rowcount

Anzahl der zu scannenden Zeilen. Der Standardwert ist NULL, d.h. alle Zeilen in den Quelldateien werden gescannt.

partition_key_validation

Nur für interne Verwendung. Verwenden Sie diesen Parameter nicht.

stop_on_error

Bestimmt, ob die Validierung gestoppt werden soll, wenn eine Zeile abgelehnt wird. Der Standardwert ist TRUE, d.h. die Validierung wird bei der ersten abgelehnten Zeile gestoppt. Wenn der Wert auf FALSE gesetzt wird, wird die Validierung nicht bei der ersten abgelehnten Zeile gestoppt, und alle Zeilen bis zum für den Parameter rowcount angegebenen Wert werden validiert.

Prozedur VALIDATE_EXTERNAL_TABLE

Diese Prozedur validiert die Quelldateien für eine externe Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen in einer Badfile-Tabelle in Autonomous Database nicht entsprechen. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Syntax

DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
	table_name      IN VARCHAR2,
	schema_name     IN VARCHAR2 DEFAULT,		
	rowcount        IN NUMBER DEFAULT,
	stop_on_error   IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE(
	table_name      IN VARCHAR2,
	operation_id    OUT NOCOPY NUMBER,
	schema_name     IN VARCHAR2 DEFAULT NULL,		
	rowcount        IN NUMBER DEFAULT 0,
	stop_on_error   IN BOOLEAN DEFAULT TRUE);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

schema_name

Der Name des Schemas, in dem sich die externe Tabelle befindet. Der Standardwert ist NULL, d.h. die externe Tabelle befindet sich im selben Schema wie der Benutzer, der die Prozedur ausführt.

rowcount

Anzahl der zu scannenden Zeilen. Der Standardwert ist NULL, d.h. alle Zeilen in den Quelldateien werden gescannt.

stop_on_error

Bestimmt, ob die Validierung gestoppt werden soll, wenn eine Zeile abgelehnt wird. Der Standardwert ist TRUE, d.h. die Validierung wird bei der ersten abgelehnten Zeile gestoppt. Wenn der Wert auf FALSE gesetzt wird, wird die Validierung nicht bei der ersten abgelehnten Zeile gestoppt, und alle Zeilen bis zum für den Parameter rowcount angegebenen Wert werden validiert.

Wenn die externe Tabelle auf Avro-, ORC- oder Parquet-Dateien verweist, wird die Validierung bei der ersten zurückgewiesenen Zeile gestoppt.

Wenn die externe Tabelle den format-Parameter type angibt und dieser auf den Wert avro, orc oder parquet gesetzt ist, hat der Parameter stop_on_error effektiv immer den Wert TRUE. Daher ist die Tabellen-Badfile für eine externe Tabelle, die auf Avro-, ORC- oder Parquet-Dateien verweist, immer leer.

Hinweise zur Verwendung

  • DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE funktioniert sowohl mit partitionierten externen Tabellen als auch mit Hybrid-partitionierten Tabellen. Dadurch werden möglicherweise Daten aus allen externen Partitionen gelesen, bis rowcount erreicht ist oder stop_on_error angewendet wird. Sie haben keine Kontrolle darüber, welche oder welche Teile einer Partition in welcher Reihenfolge gelesen werden.

Prozedur VALIDATE_HYBRID_PART_TABLE

Diese Prozedur validiert die Quelldateien für eine Hybridpartitionierungstabelle, generiert Loginformationen und speichert die Zeilen, die den für die Hybridtabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Syntax

DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
       table_name                 IN VARCHAR2,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
       table_name                 IN VARCHAR2,
       operation_id               OUT NUMBER,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);

Parameter

Parameter Beschreibung

table_name

Der Name der externen Tabelle

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

partition_name

Wenn definiert, wird nur eine bestimmte Partition validiert. Wenn keine angegeben wird, wird aus allen externen Partitionen sequenziell gelesen, bis rowcount erreicht ist.

subpartition_name

Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, wird aus allen externen Partitionen oder Unterpartitionen nacheinander gelesen, bis rowcount erreicht ist.

schema_name

Der Name des Schemas, in dem sich die externe Tabelle befindet. Der Standardwert ist NULL, d.h. die externe Tabelle befindet sich im selben Schema wie der Benutzer, der die Prozedur ausführt.

rowcount

Anzahl der zu scannenden Zeilen. Der Standardwert ist NULL, d.h. alle Zeilen in den Quelldateien werden gescannt.

partition_key_validation

Nur für interne Verwendung. Verwenden Sie diesen Parameter nicht.

stop_on_error

Bestimmt, ob die Validierung gestoppt werden soll, wenn eine Zeile abgelehnt wird. Der Standardwert ist TRUE, d.h. die Validierung wird bei der ersten abgelehnten Zeile gestoppt. Wenn der Wert auf FALSE gesetzt wird, wird die Validierung nicht bei der ersten abgelehnten Zeile gestoppt, und alle Zeilen bis zum für den Parameter rowcount angegebenen Wert werden validiert.

DBMS_CLOUD für Bulk File Management

Die Unterprogramme für Bulkdateivorgänge im Package DBMS_CLOUD.

Unterprogramm Beschreibung
Prozedur BULK_COPY

Mit dieser Prozedur werden Dateien aus einem Cloud-Objektspeicher-Bucket in einen anderen kopiert.

Prozedur BULK_DELETE

Mit dieser Prozedur werden Dateien aus dem Cloud-Objektspeicher-Bucket oder -Ordner gelöscht.

Prozedur BULK_DOWNLOAD

Mit dieser Prozedur werden Dateien aus dem Cloud-Objektspeicher-Bucket in ein Verzeichnis in Autonomous Database heruntergeladen.

Prozedur BULK_MOVE

Mit dieser Prozedur werden Dateien von einem Cloud-Objektspeicher-Bucket in einen anderen verschoben.

Prozedur BULK_UPLOAD

Diese Prozedur lädt Dateien aus einem Verzeichnis in Autonomous Database in den Cloud-Objektspeicher hoch.

Prozedur BULK_COPY

Mit dieser Prozedur werden Dateien im Bulkverfahren aus einem Cloud-Objektspeicher-Bucket in einen anderen kopiert. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE kompatibel ist.

Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.

Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.

Der Quellzugangsdaten-Name wird standardmäßig auch vom Zielspeicherort verwendet.

Syntax

DBMS_CLOUD.BULK_COPY (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_COPY (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL,
      operation_id            OUT NUMBER
);

Parameter

Parameter Beschreibung

source_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen source_credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

source_location_uri

Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_location_uri

Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien kopiert werden müssen.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen target_credential_name-Wert angeben, wird target_location_uri auf den Wert source_credential_name gesetzt.

regex_filter

Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator REGEXP_LIKE kompatibel sein.

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

Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung.

format

Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben.

Folgende Formatoptionen werden unterstützt:
  • logretention: Es akzeptiert einen Ganzzahlwert, der die Dauer in Tagen bestimmt, für die die Statustabelle für einen Bulkvorgang beibehalten wird.

    Der Standardwert ist 2 Tage.

  • logprefix: Er akzeptiert einen Zeichenfolgenwert, der die Präfixzeichenfolge des Tabellennamens für den Bulkvorgang bestimmt.

    Der Vorgangstyp ist der Standardwert. Für BULK_COPY ist der logprefix-Standardwert COPYOBJ.

  • priority: Er akzeptiert einen Zeichenfolgenwert, der die Anzahl der gleichzeitig ausgeführten Dateivorgänge bestimmt.

    Ein Vorgang mit einer höheren Priorität belegt mehr Datenbankressourcen und sollte schneller ausgeführt werden.

    Es akzeptiert folgende Werte:

    • HIGH: Bestimmt die Anzahl der parallelen Dateien, die mit der ECPU-Anzahl der Datenbank verarbeitet werden (OCPU-Anzahl, wenn die Datenbank OCPUs verwendet)

    • MEDIUM: Bestimmt die Anzahl gleichzeitiger Prozesse mit dem Nebenläufigkeitslimit für den Service "Mittel". Der Standardwert ist 4.

    • LOW: Verarbeiten Sie die Dateien in serieller Reihenfolge.

    Der Standardwert ist MEDIUM.

    Die maximale Anzahl nebenläufiger Dateivorgänge ist auf 64 begrenzt.

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

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Hinweise zur Verwendung

  • Wenn die Quell- und Ziel-URI auf denselben Object Storage-Bucket oder -Ordner verweisen, wird ein Fehler zurückgegeben.

Beispiel

BEGIN 
DBMS_CLOUD.BULK_COPY (
     source_credential_name => 'OCI_CRED',
     source_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
     target_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
     format       => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/

Prozedur BULK_DELETE

Mit dieser Prozedur werden Dateien im Bulkverfahren aus dem Cloud-Objektspeicher gelöscht. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden. Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE kompatibel ist.

Syntax

 DBMS_CLOUD.BULK_DELETE(
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_DELETE (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT NUMBER
);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

location_uri

Gibt die URI an, die auf einen Object Storage-Speicherort in Autonomous Database verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

regex_filter

Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator REGEXP_LIKE kompatibel sein.

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

Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung.

format

Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben.

Folgende Formatoptionen werden unterstützt:
  • logretention: Es akzeptiert einen ganzzahligen Wert, der die Dauer in Tagen bestimmt, für die die Statustabelle für einen Bulkvorgang beibehalten wird.

    Der Standardwert ist 2 Tage.

  • logprefix: Er akzeptiert einen Zeichenfolgenwert, der die Präfixzeichenfolge des Tabellennamens für den Bulkvorgang bestimmt.

    Der Vorgangstyp ist der Standardwert. Für BULK_DELETE ist der logprefix-Standardwert DELETE.

  • priority: Er akzeptiert einen Zeichenfolgenwert, der die Anzahl der gleichzeitig ausgeführten Dateivorgänge bestimmt.

    Ein Vorgang mit einer höheren Priorität belegt mehr Datenbankressourcen und wird früher abgeschlossen.

    Es akzeptiert folgende Werte:

    • HIGH: Bestimmt die Anzahl der parallelen Dateien, die mit der ECPU-Anzahl der Datenbank verarbeitet werden (OCPU-Anzahl, wenn die Datenbank OCPUs verwendet).

    • MEDIUM: Bestimmt die Anzahl gleichzeitiger Prozesse mit dem Nebenläufigkeitslimit für den Service "Mittel". Der Standardwert ist 4.

    • LOW: Verarbeiten Sie die Dateien in serieller Reihenfolge.

    Der Standardwert ist MEDIUM.

    Die maximale Anzahl nebenläufiger Dateivorgänge ist auf 64 begrenzt.

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

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Beispiel

BEGIN
DBMS_CLOUD.BULK_DELETE (    
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     format          => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/

Prozedur BULK_DOWNLOAD

Diese Prozedur lädt Dateien aus dem Cloud-Objektspeicher in ein Autonomous Database-Verzeichnis herunter. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden. Sie können die Liste der herunterzuladenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE kompatibel ist.

Syntax

DBMS_CLOUD.BULK_DOWNLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_DOWNLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT NUMBER
);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

location_uri

Gibt die URI an, die auf einen Object Storage-Speicherort in Autonomous Database verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

directory_name

Der Name des Verzeichnisses in Autonomous Database, aus dem Sie die Dateien herunterladen möchten.

Dieser Parameter ist erforderlich.

regex_filter

Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator REGEXP_LIKE kompatibel sein.

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

Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung.

format

Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben.

Folgende Formatoptionen werden unterstützt:
  • logretention: Es akzeptiert einen Ganzzahlwert, der die Dauer in Tagen bestimmt, für die die Statustabelle für einen Bulkvorgang beibehalten wird.

    Der Standardwert ist 2 Tage.

  • logprefix: Er akzeptiert einen Zeichenfolgenwert, der die Präfixzeichenfolge des Tabellennamens für den Bulkvorgang bestimmt. Für BULK_DOWNLOAD ist der logprefix-Standardwert DOWNLOAD.

    Der Vorgangstyp ist der Standardwert.

  • priority: Er akzeptiert einen Zeichenfolgenwert, der die Anzahl der gleichzeitig ausgeführten Dateivorgänge bestimmt.

    Ein Vorgang mit einer höheren Priorität belegt mehr Datenbankressourcen und wird früher abgeschlossen.

    Es akzeptiert folgende Werte:

    • HIGH: Bestimmt die Anzahl der parallelen Dateien, die mit der ECPU-Anzahl der Datenbank verarbeitet werden (OCPU-Anzahl, wenn die Datenbank OCPUs verwendet).

    • MEDIUM: Bestimmt die Anzahl gleichzeitiger Prozesse mit dem Nebenläufigkeitslimit für den Service "Mittel". Der Standardwert ist 4.

    • LOW: Verarbeiten Sie die Dateien in serieller Reihenfolge.

    Der Standardwert ist MEDIUM.

    Die maximale Anzahl nebenläufiger Dateivorgänge ist auf 64 begrenzt.

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

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Beispiel

BEGIN
DBMS_CLOUD.BULK_DOWNLOAD (    
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     directory_name  => 'BULK_TEST',
     format          => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
 );
END;
/

Prozedur BULK_MOVE

Bei dieser Prozedur werden Dateien im Bulkverfahren aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen verschoben. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE kompatibel ist.

Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.

Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.

Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname für das Ziel angegeben ist.

Der erste Schritt beim Verschieben von Dateien besteht darin, sie in den Zielspeicherort zu kopieren und dann die Quelldateien zu löschen, nachdem sie erfolgreich kopiert wurden.

Das Objekt wird umbenannt und nicht verschoben, wenn der Objektspeicher Umbenennungsvorgänge zwischen Quell- und Zielspeicherorten zulässt.

Syntax

DBMS_CLOUD.BULK_MOVE (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_MOVE (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL,
      operation_id            OUT NUMBER
);

Parameter

Parameter Beschreibung

source_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Quell-Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen source_credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

source_location_uri

Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_location_uri

Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien verschoben werden müssen.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

target_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen target_credential_name-Wert angeben, wird target_location_uri auf den Wert source_credential_name gesetzt.

regex_filter

Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator REGEXP_LIKE kompatibel sein.

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

Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung.

format

Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben.

Folgende Formatoptionen werden unterstützt:
  • logretention: Es akzeptiert einen Ganzzahlwert, der die Dauer in Tagen bestimmt, für die die Statustabelle für einen Bulkvorgang beibehalten wird.

    Der Standardwert ist 2 Tage.

  • logprefix: Er akzeptiert einen Zeichenfolgenwert, der die Präfixzeichenfolge des Tabellennamens für den Bulkvorgang bestimmt.

    Der Vorgangstyp ist der Standardwert. Für BULK_MOVE ist der logprefix-Standardwert MOVE.

  • priority: Er akzeptiert einen Zeichenfolgenwert, der die Anzahl der gleichzeitig ausgeführten Dateivorgänge bestimmt.

    Ein Vorgang mit einer höheren Priorität belegt mehr Datenbankressourcen und wird früher abgeschlossen.

    Es akzeptiert folgende Werte:

    • HIGH: Bestimmt die Anzahl der parallelen Dateien, die mit der ECPU-Anzahl der Datenbank verarbeitet werden (OCPU-Anzahl, wenn die Datenbank OCPUs verwendet).

    • MEDIUM: Bestimmt die Anzahl gleichzeitiger Prozesse mit dem Nebenläufigkeitslimit für den Service "Mittel". Der Standardwert ist 4.

    • LOW: Verarbeiten Sie die Dateien in serieller Reihenfolge.

    Der Standardwert ist MEDIUM.

    Die maximale Anzahl nebenläufiger Dateivorgänge ist auf 64 begrenzt.

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

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Beispiel

BEGIN 
DBMS_CLOUD.BULK_MOVE (    
     source_credential_name => 'OCI_CRED',
     source_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
     target_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
     format                 => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
Hinweis

Wenn die Quell- und Ziel-URI auf denselben Objektspeicher-Bucket oder -Ordner verweisen, wird ein Fehler zurückgegeben.

Prozedur BULK_UPLOAD

Diese Prozedur kopiert Dateien aus einem Autonomous Database-Verzeichnis in den Cloud-Objektspeicher. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden.

Syntax

DBMS_CLOUD.BULK_UPLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_UPLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT NUMBER
);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

Wenn Sie keinen credential_name-Wert angeben, wird credential_name auf NULL festgelegt.

location_uri

Gibt die URI an, die auf ein Object Storage-Verzeichnis zum Hochladen von Dateien verweist.

Dieser Parameter ist erforderlich.

Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.

directory_name

Der Name des Verzeichnisses in Autonomous Database, aus dem Sie Dateien hochladen.

Dieser Parameter ist erforderlich.

regex_filter

Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator REGEXP_LIKE kompatibel sein.

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

Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung.

format

Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben.

Folgende Formatoptionen werden unterstützt:
  • logretention: Es akzeptiert einen Ganzzahlwert, der die Dauer in Tagen bestimmt, für die die Statustabelle für einen Bulkvorgang beibehalten wird.

    Der Standardwert ist 2 Tage.

  • logprefix: Er akzeptiert einen Zeichenfolgenwert, der die Präfixzeichenfolge des Tabellennamens für den Bulkvorgang bestimmt.

    Der Vorgangstyp ist der Standardwert. Für BULK_UPLOAD ist der logprefix-Standardwert UPLOAD.

  • priority: Er akzeptiert einen Zeichenfolgenwert, der die Anzahl der gleichzeitig ausgeführten Dateivorgänge bestimmt.

    Ein Vorgang mit einer höheren Priorität belegt mehr Datenbankressourcen und wird früher abgeschlossen.

    Es akzeptiert folgende Werte:

    • HIGH: Bestimmt die Anzahl der parallelen Dateien, die mit der ECPU-Anzahl der Datenbank verarbeitet werden (OCPU-Anzahl, wenn die Datenbank OCPUs verwendet).

    • MEDIUM: Bestimmt die Anzahl gleichzeitiger Prozesse mit dem Nebenläufigkeitslimit für den Service "Mittel". Der Standardwert ist 4.

    • LOW: Verarbeiten Sie die Dateien in serieller Reihenfolge.

    Der Standardwert ist MEDIUM.

    Die maximale Anzahl nebenläufiger Dateivorgänge ist auf 64 begrenzt.

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

operation_id

Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View USER_LOAD_OPERATIONS verfolgen.

Beispiel

BEGIN
DBMS_CLOUD.BULK_UPLOAD ( 
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     directory_name  => 'BULK_TEST',
     format          => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
 );
END;
/

REST-APIs für DBMS_CLOUD

In diesem Abschnitt werden die DBMS_CLOUD-REST-APIs beschrieben, die mit Autonomous Database bereitgestellt werden.

REST-API Beschreibung

Funktion GET_RESPONSE_HEADERS

Diese Funktion gibt die HTTP-Antwortheader als JSON-Daten in einem JSON-Objekt in Autonomous Database zurück.

Funktion GET_RESPONSE_RAW

Diese Funktion gibt die HTTP-Antwort im RAW-Format in Autonomous Database zurück. Dies ist nützlich, wenn als HTTP-Antwort ein Binärformat erwartet wird.

Funktion GET_RESPONSE_STATUS_CODE

Mit dieser Funktion wird der HTTP-Antwortstatuscode als Ganzzahl in Autonomous Database zurückgegeben. Mit dem Statuscode kann ermittelt werden, ob die Anforderung erfolgreich war.

Funktion GET_RESPONSE_TEXT

Diese Funktion gibt die HTTP-Antwort im TEXT-Format zurück (VARCHAR2 oder CLOB) in Autonomous Database. In der Regel geben die meisten Cloud-REST-APIs eine JSON-Antwort im Textformat zurück. Diese Funktion ist nützlich, wenn Sie erwarten, dass die HTTP-Antwort im Textformat vorliegt.

Funktion GET_API_RESULT_CACHE_SIZE

Diese Funktion gibt die konfigurierte Ergebniscachegröße zurück.

Funktion und Prozedur SEND_REQUEST

Diese Funktion beginnt eine HTTP-Anforderung, ruft die Antwort ab und beendet die Antwort in Autonomous Database. Diese Funktion bietet einen Workflow zum Senden einer Cloud-REST-API-Anforderung mit Argumenten und einem Antwortcode und einer Payload.

SET_API_RESULT_CACHE_SIZE-Prozedur

Mit dieser Prozedur wird die maximale Cachegröße für die aktuelle Session festgelegt.

DBMS_CLOUD REST-API - Überblick

Wenn Sie PL/SQL in Ihrer Anwendung verwenden und Cloud-REST-APIs aufrufen müssen, können Sie die REST-API-Anforderungen mit DBMS_CLOUD.SEND_REQUEST senden.

Mit den DBMS_CLOUD-REST-API-Funktionen können Sie HTTP-Anforderungen mit DBMS_CLOUD.SEND_REQUEST erstellen und Ergebnisse abrufen und speichern. Diese Funktionen stellen eine generische API bereit, mit der Sie eine beliebige REST-API mit den folgenden unterstützten Cloud-Services aufrufen können:

DBMS_CLOUD-REST-API - Konstanten

Beschreibung der DBMS_CLOUD-Konstanten zum Erstellen von HTTP-Anforderungen mit DBMS_CLOUD.SEND_REQUEST.

DBMS_CLOUD unterstützt die HTTP-Methoden GET, PUT, POST, HEAD und DELETE. Die für eine HTTP-Anforderung zu verwendende REST-API-Methode ist in der Regel in der Cloud-REST-API-Dokumentation dokumentiert.

Name Typ Value
METHOD_DELETE VARCHAR2(6) 'DELETE'
METHOD_GET VARCHAR2(3) 'GET'
METHOD_HEAD VARCHAR2(4) 'HEAD'
METHOD_POST VARCHAR2(4) 'POST'
METHOD_PUT VARCHAR2(3) 'PUT'

DBMS_CLOUD REST-API - Ergebniscache

Sie können die REST-API-Ergebnisse für DBMS_CLOUD speichern, wenn Sie den Parameter cache mit DBMS_CLOUD.SEND_REQUEST auf "true" setzen. In der View SESSION_CLOUD_API_RESULTS werden die Spalten beschrieben, die Sie beim Speichern von REST-API-Ergebnissen verwenden können.

Standardmäßig werden in DBMS_CLOUD-REST-API-Aufrufen keine Ergebnisse für Ihre Session gespeichert. In diesem Fall verwenden Sie die Funktion DBMS_CLOUD.SEND_REQUEST, um Ergebnisse zurückzugeben.

Wenn Sie DBMS_CLOUD.SEND_REQUEST verwenden und den Parameter cache auf TRUE setzen, werden Ergebnisse gespeichert, und Sie können vergangene Ergebnisse in der View SESSION_CLOUD_API_RESULTS anzeigen. Das Speichern und Abfragen historischer Ergebnisse von DBMS_CLOUD-REST-API-Anforderungen kann hilfreich sein, wenn Sie mit vorherigen Ergebnissen in Ihren Anwendungen arbeiten müssen.

Beispiel: Zum Abfragen der letzten REST-API-Ergebnisse von DBMS_CLOUD verwenden Sie die View SESSION_CLOUD_API_RESULTS:

SELECT timestamp FROM SESSION_CLOUD_API_RESULTS;

Wenn Sie die DBMS_CLOUD-REST-API-Ergebnisse mit DBMS_CLOUD.SEND_REQUEST speichern, sind die gespeicherten Daten nur innerhalb derselben Session (Verbindung) verfügbar. Nachdem die Session beendet wurde, sind die gespeicherten Daten nicht mehr verfügbar.

Mit DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE und DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE können Sie die DBMS_CLOUD-REST-API-Cachegröße anzeigen und festlegen sowie das Caching deaktivieren.

DBMS_CLOUD REST-API-Ergebnisparameter cache_scope

Wenn Sie DBMS_CLOUD-REST-API-Ergebnisse mit DBMS_CLOUD.SEND_REQUEST speichern, wird der Zugriff auf die Ergebnisse in SESSION_CLOUD_API_RESULTS basierend auf dem Wert von cache_scope gewährt.

Standardmäßig hat cache_scope den Wert 'PRIVATE', und nur der aktuelle Benutzer der Session kann auf die Ergebnisse zugreifen. Wenn Sie cache_scope auf 'PUBLIC' setzen, können alle Sessionbenutzer auf die Ergebnisse zugreifen. Der Standardwert für cache_scope gibt an, dass jeder Benutzer nur DBMS_CLOUD.SEND_REQUEST-REST-API-Ergebnisse anzeigen kann, die von den Prozeduren generiert wurden, die er mit den Rechten des Aufrufers aufrufen. Wenn Sie DBMS_CLOUD.SEND_REQUEST in einer Session aufrufen, gibt es drei Möglichkeiten, basierend auf dem Wert von cache_scope zu bestimmen, ob der aktuelle Benutzer Ergebnisse im Cache sehen kann:

  • Sie führen DBMS_CLOUD.SEND_REQUEST direkt als Anweisung der obersten Ebene aus, und der Aufruf von DBMS_CLOUD.SEND_REQUEST und die Ergebnisse der REST-API werden mit demselben Benutzernamen gespeichert. In diesem Fall haben Sie Zugriff auf alle Ergebnisse mit dem Standardwert 'PRIVATE', der für cache_scope festgelegt ist.

  • Sie schreiben eine Prozedur mit Wrapper-Invoker-Berechtigungen, und als aktueller Benutzer ruft Ihr Aufruf mit DBMS_CLOUD.SEND_REQUEST die Prozedur auf, und die REST-API-Ergebnisse werden mit demselben Benutzernamen gespeichert. In diesem Fall haben Sie Zugriff auf alle Ergebnisse mit dem Standardwert 'PRIVATE', der für cache_scope festgelegt ist.

  • Sie schreiben eine Prozedur mit Wrapper-Definer-Rechten, und die Prozedur gehört einem anderen Benutzer. Wenn Sie DBMS_CLOUD.SEND_REQUEST innerhalb der Prozedur aufrufen, werden die Ergebnisse mit dem Benutzernamen des Prozedureigentums gespeichert.

    In diesem Fall ruft ein anderer Benutzer mit Definer-Berechtigungen DBMS_CLOUD.SEND_REQUEST auf, und die REST-API-Ergebnisse werden mit dem Eigentümer der Prozedur dieses Erstellers gespeichert. In diesem Fall kann die Session des ausführenden Benutzers die Ergebnisse standardmäßig nicht anzeigen, wenn cache_scope den Wert PRIVATE' hat.

    Wenn der Prozedureigentümer des Erstellers die Ergebnisse jedem aufrufenden Benutzer zur Verfügung stellen möchte, muss er cache_scope in DBMS_CLOUD.SEND_REQUEST auf 'PUBLIC' setzen.

DBMS_CLOUD REST-API-Ansicht SESSION_CLOUD_API_RESULTS

Sie können die REST-API-Ergebnisse für DBMS_CLOUD speichern, wenn Sie den Parameter cache mit DBMS_CLOUD.SEND_REQUEST auf "true" setzen. In der View SESSION_CLOUD_API_RESULTS werden die Spalten beschrieben, die Sie beim Speichern von REST-API-Ergebnissen verwenden können.

Die View SESSION_CLOUD_API_RESULTS wird erstellt, wenn Sie Ergebnisse mit DBMS_CLOUD.SEND_REQUEST cachen. Sie können historische Ergebnisse abfragen, die zu Ihrer Benutzersession gehören. Wenn die Session beendet ist, werden die Daten in SESSION_CLOUD_API_RESULTS gelöscht.

Spalte Beschreibung
URI Die Anforderungs-URL der DBMS_CLOUD-REST-API
TIMESTAMP Zeitstempel der DBMS_CLOUD-REST-API-Antwort
CLOUD_TYPE Der DBMS_CLOUD-REST-API-Cloud-Typ, wie Oracle Cloud Infrastructure, AMAZON_S3 und AZURE_BLOB
REQUEST_METHOD Die Anforderungsmethode der REST-API der DBMS_CLOUD-REST-API, wie GET, PUT, HEAD
REQUEST_HEADERS Die DBMS_CLOUD-REST-API-Anforderungsheader
REQUEST_BODY_TEXT Der DBMS_CLOUD-REST-API-Anforderungsbody in CLOB
RESPONSE_STATUS_CODE Der REST-API-Antwortstatuscode DBMS_CLOUD, wie 200(OK), 404(Not Found)
RESPONSE_HEADERS Die REST-API-Antwortheader DBMS_CLOUD
RESPONSE_BODY_TEXT Der DBMS_CLOUD-REST-API-Antwortbody in CLOB
SCOPE

Der von DBMS_CLOUD.SEND_REQUEST festgelegte cache_scope. Gültige Werte sind PUBLIC oder PRIVATE.

Funktion GET_RESPONSE_HEADERS

Diese Funktion gibt die HTTP-Antwortheader als JSON-Daten in einem JSON-Objekt zurück.

Syntax

DBMS_CLOUD.GET_RESPONSE_HEADERS(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN JSON_OBJECT_T;

Parameter

Parameter Beschreibung
resp

Von DBMS_CLOUD.SEND_REQUEST zurückgegebener HTTP-Antworttyp.

Ausnahmen

Ausnahme: Fehler Beschreibung
invalid_response ORA-20025

Ungültiges Antworttypobjekt an DBMS_CLOUD.GET_RESPONSE_HEADERS übergeben.

Funktion GET_RESPONSE_RAW

Diese Funktion gibt die HTTP-Antwort im RAW-Format zurück. Dies ist nützlich, wenn als HTTP-Antwort ein Binärformat erwartet wird.

Syntax

DBMS_CLOUD.GET_RESPONSE_RAW(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN BLOB;

Parameter

Parameter Beschreibung
resp

Von DBMS_CLOUD.SEND_REQUEST zurückgegebener HTTP-Antworttyp.

Ausnahmen

Ausnahme: Fehler Beschreibung
invalid_response ORA-20025

Ungültiges Antworttypobjekt an DBMS_CLOUD.GET_RESPONSE_RAW übergeben.

Funktion GET_RESPONSE_STATUS_CODE

Diese Funktion gibt den HTTP-Antwortstatuscode als Ganzzahl zurück. Mit dem Statuscode kann ermittelt werden, ob die Anforderung erfolgreich war.

Syntax

DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN PLS_INTEGER;

Parameter

Parameter Beschreibung
resp

Von DBMS_CLOUD.SEND_REQUEST zurückgegebener HTTP-Antworttyp.

Ausnahmen

Ausnahme: Fehler Beschreibung
invalid_response ORA-20025

Ungültiges Antworttypobjekt an DBMS_CLOUD.GET_RESPONSE_STATUS_CODE übergeben.

Funktion GET_RESPONSE_TEXT

Diese Funktion gibt die HTTP-Antwort im TEXT-Format zurück (VARCHAR2 oder CLOB). In der Regel geben die meisten Cloud-REST-APIs eine JSON-Antwort im Textformat zurück. Diese Funktion ist nützlich, wenn Sie erwarten, dass die HTTP-Antwort im Textformat vorliegt.

Syntax

DBMS_CLOUD.GET_RESPONSE_TEXT(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN CLOB;

Parameter

Parameter Beschreibung
resp

Von DBMS_CLOUD.SEND_REQUEST zurückgegebener HTTP-Antworttyp.

Ausnahmen

Ausnahme: Fehler Beschreibung
invalid_response ORA-20025

Ungültiges Antworttypobjekt an DBMS_CLOUD.GET_RESPONSE_TEXT übergeben.

Funktion GET_API_RESULT_CACHE_SIZE

Diese Funktion gibt die konfigurierte Ergebniscachegröße zurück. Der Wert für die Cachegröße gilt nur für die aktuelle Session.

Syntax

DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE()
   RETURN NUMBER;

Funktion und Prozedur SEND_REQUEST

Diese Funktion und Prozedur starten eine HTTP-Anforderung, rufen die Antwort ab und beenden die Antwort. Diese Funktion stellt einen Workflow zum Senden einer Cloud-REST-API-Anforderung mit Argumenten bereit, und die Funktion gibt einen Antwortcode und eine Payload zurück. Wenn Sie die Prozedur verwenden, können Sie Ergebnisse und Antwortdetails aus den gespeicherten Ergebnissen mit der View SESSION_CLOUD_API_RESULTS anzeigen.

Syntax

DBMS_CLOUD.SEND_REQUEST(
       credential_name    IN VARCHAR2,
       uri                IN VARCHAR2,
       method             IN VARCHAR2,
       headers            IN CLOB DEFAULT NULL,
       async_request_url  IN VARCHAR2 DEFAULT NULL,
       wait_for_states    IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
       timeout            IN NUMBER DEFAULT 0,
       cache              IN PL/SQL BOOLEAN DEFAULT FALSE,
       cache_scope        IN VARCHAR2 DEFAULT 'PRIVATE',
       body               IN BLOB DEFAULT NULL)
   RETURN DBMS_CLOUD_TYPES.resp;

DBMS_CLOUD.SEND_REQUEST(
       credential_name    IN VARCHAR2,
       uri                IN VARCHAR2,
       method             IN VARCHAR2,
       headers            IN CLOB DEFAULT NULL,
       async_request_url  IN VARCHAR2 DEFAULT NULL,
       wait_for_states    IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
       timeout            IN NUMBER DEFAULT 0,
       cache              IN PL/SQL BOOLEAN DEFAULT FALSE,
       cache_scope        IN VARCHAR2 DEFAULT 'PRIVATE',
       body               IN BLOB DEFAULT NULL);

Parameter

Parameter Beschreibung

credential_name

Der Name der Zugangsdaten für die Authentifizierung mit der entsprechenden Cloud-basierten API.

Sie können 'OCI$RESOURCE_PRINCIPAL' als credential_name verwenden, wenn der Resource Principal aktiviert ist. Weitere Informationen finden Sie unter ENABLE_RESOURCE_PRINCIPAL.

uri

HTTP-URI zum Erstellen der Anforderung.

method

HTTP-Anforderungsmethode: GET, PUT, POST, HEAD, DELETE. Verwenden Sie die DBMS_CLOUD-Konstante, um die Methode anzugeben.

Weitere Informationen finden Sie unter DBMS_CLOUD-REST-API - Konstanten.

headers

HTTP-Anforderungsheader für die entsprechende Cloud-native API im JSON-Format. Die Authentifizierungsheader werden automatisch festgelegt. Übergeben Sie nur benutzerdefinierte Header.

async_request_url

URL für eine asiatische Anforderung.

Um die URL abzurufen, wählen Sie Ihre Anforderungs-API aus der Liste der APIs aus (siehe https://docs.cloud.oracle.com/en-us/iaas/api/). Navigieren Sie dann im linken Fensterbereich zur API für Ihre Anforderung. Beispiel: Database Services-API → Autonomous Database → StopAutonomousDatabase. Auf dieser Seite wird das API-Home (und der Endpunkt) angezeigt. Hängen Sie dann den Basisendpunkt mit dem relativen Pfad an, der für den Link WorkRequest der Arbeitsanforderung abgerufen wurde.

wait_for_states

"Auf Status warten" ist ein Status vom Typ DBMS_CLOUD_TYPES.wait_for_states_t. Gültige Werte für den erwarteten Status: ACTIVE, CANCELED, COMPLETED, DELETED, FAILED, SUCCEEDED.

Mehrere Status sind für wait_for_states zulässig. Der Standardwert für wait_for_states ist das Warten auf einen der erwarteten Status: ACTIVE, CANCELED, COMPLETED, DELETED, FAILED, SUCCEEDED.

timeout

Gibt den Timeout (in Sekunden) für asynchrone Anforderungen mit den Parametern async_request_url und wait_for_states an.

Der Standardwert ist 0. Damit wird angegeben, dass ohne Timeout auf den Abschluss der Anforderung wartet.

cache

Wenn TRUE, muss die Anforderung im REST-Ergebnis-API-Cache gespeichert werden.

Der Standardwert ist FALSE. Das bedeutet, dass REST-API-Anforderungen nicht gespeichert werden.

cache_scope

Gibt an, ob jeder Benutzer Zugriff auf diesen Anforderungsergebniscache haben kann. Gültige Werte: "PRIVATE" und "PUBLIC". Der Standardwert ist "PRIVATE".

body

HTTP-Anforderungstext für PUT- und POST-Anforderungen.

Ausnahmen

Ausnahme: Fehler Beschreibung
invalid_req_method ORA-20023

Die an DBMS_CLOUD.SEND_REQUEST übergebene Anforderungsmethode ist ungültig.

invalid_req_header ORA-20024

An DBMS_CLOUD.SEND_REQUEST übergebene Anforderungsheader weisen kein gültiges JSON-Format auf.

Hinweise zur Verwendung

  • Wenn Sie Oracle Cloud Infrastructure verwenden, müssen Sie einen signaturschlüsselbasierten Zugangsdatenwert für credential_name verwenden. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

  • Mit den optionalen Parametern async_request_url, wait_for_states und timeout können Sie Anforderungen mit langer Ausführungszeit bearbeiten. Mit dieser asynchronen Form von send_request wartet die Funktion auf den in wait_for_states angegebenen Abschlussstatus, bevor sie zurückgibt. Wenn Sie diese Parameter in der Sendeanforderung verwenden, übergeben Sie die erwarteten Rückgabestatus im Parameter wait_for_states. Mit dem Parameter async_request_url können Sie eine verknüpfte Arbeitsanforderung angeben. Die Anforderung gibt nicht sofort einen Wert zurück. Stattdessen prüft die Anforderung die async_request_url, bis der Rückgabestatus einer der erwarteten Status ist oder der timeout überschritten wird (timeout ist optional). Wenn kein timeout angegeben ist, wartet die Anforderung, bis ein in wait_for_states gefundener Status auftritt.

SET_API_RESULT_CACHE_SIZE-Prozedur

Mit dieser Prozedur wird die maximale Cachegröße für die aktuelle Session festgelegt. Der Wert für die Cachegröße gilt nur für die aktuelle Session.

Syntax

DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(
       cache_size          IN NUMBER);

Parameter

Parameter Beschreibung
cache_size

Setzt die maximale Cachegröße auf den angegebenen Wert cache_size. Wenn die neue maximale Cachegröße kleiner als die aktuelle Cachegröße ist, werden ältere Datensätze gelöscht, bis die Zeilenanzahl der angegebenen maximalen Cachegröße entspricht. Der Höchstwert beträgt 10000.

Wenn die Cachegröße auf 0 gesetzt ist, ist das Caching in der Session deaktiviert.

Die Standardcachegröße beträgt 10.

Ausnahmen

Ausnahme: Fehler Beschreibung
invalid API result cache size ORA-20032

Der Mindestwert ist 0 und der Höchstwert ist 10000. Diese Ausnahme wird angezeigt, wenn der Eingabewert kleiner als 0 oder größer als 1000 ist.

Beispiel

EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(101);

DBMS_CLOUD-REST-API - Beispiele

Zeigt Beispiele mit DBMS_CLOUD.SEND_REQUEST zum Erstellen und Löschen eines Oracle Cloud Infrastructure Object Storage-Buckets und ein Beispiel für eine Liste aller Compartments im Mandanten.

Hinweis

Diese Beispiele zeigen Oracle Cloud Infrastructure-Anforderungs-APIs und erfordern die Verwendung signaturschlüsselbasierter Zugangsdaten für credential_name. Auf Oracle Cloud Infrastructure-Signaturschlüsseln basierende Zugangsdaten enthalten die Argumente private_key und fingerprint.

Beispiele:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Informationen zu DBMS_CLOUD.CREATE_CREDENTIAL finden Sie unter Prozedur CREATE_CREDENTIAL.

Bucket erstellen - Beispiel

Zeigt ein Beispiel, das DBMS_CLOUD.SEND_REQUEST mit der HTTP-Methode POST verwendet, um einen Objektspeicher-Bucket mit dem Namen bucketname zu erstellen.

Weitere Informationen zur Oracle Cloud Infrastructure Object Storage-Service-API für dieses Beispiel finden Sie unter CreateBucket.

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
            method => DBMS_CLOUD.METHOD_POST,
            body => UTL_RAW.cast_to_raw(
                        JSON_OBJECT('name' value 'bucketname',
                                    'compartmentId' value 'compartment_OCID'))
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

Hinweise

  • In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

  • Dabei gilt: region ist eine Endpunktregion. Weitere Informationen finden Sie in der Object Storage-API-Referenz unter API-Referenz und -Endpunkte. Beispiel: region ist : us-phoenix-1.

Bucket löschen - Beispiel

Zeigt ein Beispiel, das die Methode DBMS_CLOUD.SEND_REQUEST mit der HTTP-Methode DELETE verwendet, um einen Objektspeicher-Bucket mit dem Namen bucketname zu löschen.

Weitere Informationen zur Oracle Cloud Infrastructure Object Storage-Service-API für dieses Beispiel finden Sie unter DeleteBucket.

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname',
            method => DBMS_CLOUD.METHOD_DELETE
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

Hinweise

  • In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

  • Dabei gilt: region ist eine Endpunktregion. Weitere Informationen finden Sie in der Object Storage-API-Referenz unter API-Referenz und -Endpunkte. Beispiel: region ist : us-phoenix-1.

Compartments auflisten - Beispiel

Zeigt ein Beispiel, in dem mit DBMS_CLOUD.SEND_REQUEST mit der HTTP-Methode GET alle Compartments im Mandanten (root Compartment) aufgelistet werden. In diesem Beispiel wird gezeigt, wie Anforderungsheader in DBMS_CLOUD.SEND_REQUEST übergeben werden.

Einzelheiten zur Oracle Cloud Infrastructure Identity and Access Management-Service-API für dieses Beispiel finden Sie unter ListCompartments.

--
-- List compartments
--
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
  root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
  -- Send request
  dbms_output.put_line('Send Request');
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
            method => DBMS_CLOUD.METHOD_GET,
            headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
          );
  dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
  dbms_output.put_line(CHR(10));
END;
/

Dabei gilt: region ist eine Endpunktregion. Weitere Informationen finden Sie in der Identity and Access Management-(IAM-)API-Referenz unter API-Referenz und -Endpunkte. Angenommen, region ist uk-london-1.

Asynchrone Anforderung - Beispiel

Zeigt ein Beispiel, in dem mit DBMS_CLOUD.SEND_REQUEST mit der HTTP-Methode POST der Stoppvorgang in Autonomous Database ausgeführt und auf den Status gewartet wird. In diesem Beispiel wird gezeigt, wie Sie DBMS_CLOUD.SEND_REQUEST mit den Parametern async_request_url, wait_for_states und timeout verwenden.

--
-- Sent Work Request Autonomous Database Stop Request with Wait for Status
DECLARE
    l_resp DBMS_CLOUD_TYPES.resp;
    l_resp_json JSON_OBJECT_T;
    l_key_shape JSON_OBJECT_T;
    l_body JSON_OBJECT_T;
    status_array DBMS_CLOUD_TYPES.wait_for_states_t;
BEGIN
  status_array := DBMS_CLOUD_TYPES.wait_for_states_t('SUCCEEDED');
  l_body := JSON_OBJECT_T('{}');
  l_body.put('autonomousDatabaseId', 'ocid');
-- Send request
  dbms_output.put_line(l_body.to_clob);
  dbms_output.put_line('Send Request');
  l_resp := DBMS_CLOUD.send_request(
                       credential_name    => 'NATIVE_CRED_OCI',
                       uri                => 'https://database.region.oraclecloud.com/20160918/autonomousDatabases/ocid/actions/stop',
                       method             => DBMS_CLOUD.METHOD_POST,
                       body               => UTL_RAW.cast_to_raw(l_body.to_clob),
                       async_request_url  => 'https://iaas.region.oraclecloud.com/20160918/workRequests',
                       wait_for_states    => status_array,
                       timeout            => 600
                  );
   dbms_output.put_line('resp body: '||DBMS_CLOUD.get_response_text(l_resp));
   dbms_output.put_line('resp headers: '||DBMS_CLOUD.get_response_headers(l_resp).to_clob);
END;
/

Dabei gilt: region ist eine Endpunktregion. Weitere Informationen finden Sie in der Identity and Access Management-(IAM-)API-Referenz unter API-Referenz und -Endpunkte. Angenommen, region ist uk-london-1.

ocid ist die Oracle Cloud Infrastructure-Ressourcen-ID. Weitere Informationen finden Sie unter Ressourcen-IDs.



Fußnoten

Fußnote 3: Die Unterstützung von Azure Cloud-REST-REST-API-Aufrufen ist auf die Domain "blob.windows.net" beschränkt.