Externe Data Pump-Dumpdateien abfragen

Sie können Oracle Data Pump-Dumpdateien auch in der Cloud abfragen, indem Sie eine externe Tabelle mit DBMS_CLOUD.CREATE_EXTERNAL_TABLE erstellen.

Die Quelldateien zum Erstellen dieses Typs einer externen Tabelle müssen mit dem Zugriffstreiber ORACLE_DATAPUMP in externen Tabellen aus dem Quellsystem exportiert werden. Einzelheiten zum Exportieren mit dem Zugriffstreiber ORACLE_DATAPUMP finden Sie unter Daten mit dem Zugriffstreiber ORACLE_DATAPUMP entladen und laden.

Um eine externe Tabelle zu erstellen, verschieben Sie zuerst die Oracle Data Pump-Dumpdateien, die mit dem Zugriffstreiber ORACLE_DATAPUMP exportiert wurden, in den Objektspeicher und verwenden dann DBMS_CLOUD.CREATE_EXTERNAL_TABLE, um die externe Tabelle zu erstellen.

Die Quelldateien in diesem Beispiel sind die Oracle Data Pump-Dumpdateien exp01.dmp und exp02.dmp.

  1. Speichern Sie die Zugangsdaten für den Objektspeicher mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL.

    Beispiel:

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

    Bei diesem Vorgang werden die Zugangsdaten in der Datenbank in einem verschlüsselten Format gespeichert. Sie können einen beliebigen Namen für den Zugangsdatennamen verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, wenn sich die Zugangsdaten des Objektspeichers nicht ändern. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen zum Erstellen externer Tabellen verwenden.

    Informationen zu den Parametern username und password für verschiedene Objektspeicherservices finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Erstellen Sie eine externe Tabelle auf der Basis der Quelldateien mit der Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

    Beispiel:

    BEGIN
       DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
        table_name =>'CHANNELS_EXT',
        credential_name =>'DEF_CRED_NAME',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp01.dmp,
                         https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp02.dmp'
        format => json_object('type' value 'datapump', 'rejectlimit' value '1'),
        column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)' );
    END;
    /
    

    Die Parameter sind:

    • table_name: Der Name der externen Tabelle.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

    • file_uri_list: Eine kommagetrennte Liste der Data Pump-Dumpdateien, die Sie abfragen möchten.

    • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben können, und definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben können. Wenn Sie den Typ 'datapump' angeben, ist der einzige andere gültige Formatparameter 'rejectlimit'.

    • column_list: Eine durch Komma getrennte Liste der Spaltendefinitionen in den Quelldateien.

    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.

    Jetzt können Sie Abfragen für die externe Tabelle ausführen, die Sie im vorherigen Schritt erstellt haben. Beispiel:

    SELECT count(*) FROM channels_ext;

    Standardmäßig erwartet die Datenbank, dass alle Zeilen in der externen Datendatei gültig sind und sowohl mit den Zieldatentypdefinitionen als auch der Formatdefinition der Dateien übereinstimmen. Im Rahmen der Validierung stellt DBMS_CLOUD sicher, dass alle erforderlichen Dumpdateiteile vorhanden sind. Außerdem wird geprüft, ob die Dumpdateien gültig und nicht beschädigt sind (z.B. exp01.dmp, exp02.dmp usw.). Mit der Formatoption DBMS_CLOUD rejectlimit können Sie diese Fehler unterdrücken. Alternativ können Sie auch die erstellte externe Tabelle validieren, um die Fehlermeldungen und abgelehnten Zeilen anzuzeigen. Weitere Informationen finden Sie unter Externe Daten validieren.

    Ausführliche Informationen zu den Parametern finden Sie unter CREATE_EXTERNAL_TABLE-Prozedur.

    Weitere Informationen zu den unterstützten Cloud-Objektspeicherservices finden Sie unter DBMS_CLOUD URI-Formate.