DBMS_CLOUD für Objekte und Dateien

In diesem Abschnitt werden die DBMS_CLOUD-Unterprogramme behandelt, die für die Arbeit mit Objekten und Dateien verwendet werden.

Voraussetzungen

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

Abhängig von der Bereitstellungsoption müssen die folgenden Voraussetzungen erfüllt sein, um die DBMS_CLOUD-Prozeduren mit Amazon S3-, Azure Blob Storage- und Google Cloud Storage-Serviceprovidern zu verwenden.

DBMS_CLOUD-Unterprogramme für Objekte und Dateien

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

Unterprogramm Beschreibung
Prozedur COPY_COLLECTION Diese Prozedur lädt Daten aus Cloud Object Storage oder aus Dateien in einem Verzeichnis in eine vorhandene SODA-Collection.
Prozedur COPY_DATA Bei dieser Prozedur werden Daten aus Cloud Object Storage oder aus Dateien in einem Verzeichnis in vorhandene autonome AI-Datenbanktabellen geladen.
COPY_DATA-Prozedur für Avro-, ORC- oder Parkettdateien

Bei dieser Prozedur mit dem Parameter format type, der auf den Wert orc,parquet oder avro gesetzt ist, werden Daten aus ORC-, Parquet- oder Avro-Dateien in der Cloud oder aus ORC-, Parquet- oder Avro-Dateien in einem Verzeichnis in vorhandene autonome AI-Datenbanktabellen geladen.

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

Prozedur COPY_OBJECT Bei dieser Prozedur werden Dateien von einem Cloud-Objektspeicher-Bucket in einen anderen kopiert.
Prozedur CREATE_EXTERNAL_TABLE Diese Prozedur erstellt eine externe Tabelle in Dateien in der Cloud oder in Dateien in einem Verzeichnis. So können Sie Abfragen zu externen Daten aus Autonomous AI Database ausführen.
CREATE_EXTERNAL_TABLE-Prozedur für Avro-, ORC- oder Parkettdateien

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

So können Sie Abfragen zu externen Daten aus Autonomous AI Database ausführen.

Prozedur CREATE_EXTERNAL_TEXT_INDEX Mit dieser Prozedur wird ein Textindex für die Objektspeicherdateien erstellt.
Prozedur CREATE_HYBRID_PART_TABLE Mit diesem Verfahren wird eine hybride partitionierte Tabelle erstellt. Auf diese Weise können Sie Abfragen für hybride partitionierte Daten aus der autonomen KI-Datenbank 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 Mit dieser Prozedur wird die angegebene Datei aus dem angegebenen Verzeichnis in Autonomous AI Database entfernt
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 Bei dieser Prozedur wird der Textindex für die Objektspeicherdateien gelöscht.
Prozedur EXPORT_DATA Diese Prozedur exportiert Daten aus der autonomen KI-Datenbank basierend auf dem Ergebnis einer Abfrage in Dateien in der Cloud. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden. Abhängig von der angegebenen Option für den format-Parameter type exportiert die Prozedur Zeilen als Text mit den Optionen CSV, JSON, Parquet oder XML in den Cloud-Objektspeicher.
Prozedur und Funktion GET_OBJECT Diese Prozedur ist überladen. Diese Prozedur liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous AI Database. Das Funktionsformular liest ein Objekt aus Cloud Object Storage und gibt eine BLOB an die autonome KI-Datenbank zurück.
Funktion LIST_FILES 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.
MOVE_OBJECT-Prozedur Mit dieser Prozedur wird ein Objekt von einem Cloud-Objektspeicher-Bucket in einen anderen verschoben.
Prozedur PUT_OBJECT Diese Prozedur ist überladen. In einem Formular wird eine Datei aus der autonomen KI-Datenbank in den Cloud-Objektspeicher kopiert. In einer anderen Form kopiert die Prozedur eine BLOB aus der autonomen KI-Datenbank in den Cloud-Objektspeicher.
Prozedur SYNC_EXTERNAL_PART_TABLE Mit diesem Verfahren wird das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud vereinfacht. 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 einer autonomen AI-Datenbank 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 diese externe Tabelle angegebenen Formatoptionen in einer Badfile-Tabelle in einer Autonomous AI Database nicht entsprechen.
Prozedur VALIDATE_HYBRID_PART_TABLE Diese Prozedur validiert die Quelldateien für eine Hybrid-partitionierte Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die Hybridtabelle angegebenen Formatoptionen in einer Badfile-Tabelle in einer Autonomous AI Database nicht entsprechen.

Prozedur COPY_COLLECTION

Diese Prozedur lädt Daten aus dem Cloud-Objektspeicher in eine SODA-Collection oder aus einem Verzeichnis. 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.

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 mit 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 den 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

Beispiel:

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 benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Weitere Informationen zur REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format für die 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. Beim Dateinamen muss die Groß-/Kleinschreibung beachtet werden.

Mit Platzhaltern können Sie Dateinamen in einem Verzeichnis angeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden. Beispiel:'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: 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, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarray, keyassignment und keypath.

Neben den genannten Formaten für JSON-Daten unterstützt Autonomous AI Database auch andere Formate. Eine Liste der Formatargumente, die von der autonomen KI-Datenbank unterstützt werden, finden Sie unter Formatparameter.

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 der Cloud oder aus Dateien eines Verzeichnisses in vorhandene Tabellen der autonomen KI-Datenbank. 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.

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

file_uri_list

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

URIs für Cloud-Quelldatei

Dieser Parameter gibt entweder eine durch Komma getrennte Liste mit 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

Beispiel:

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 benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Weitere Informationen zur REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format für die 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. Beim Dateinamen muss die Groß-/Kleinschreibung beachtet werden.

Mit Platzhaltern können Sie Dateinamen in einem Verzeichnis angeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden. Beispiel:'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: 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 den Parameter column_list bestimmt. Die Syntax dieses Arguments entspricht der field_list-Klausel in regulären externen Oracle-Tabellen. Weitere Informationen finden Sie unter field_list in Oracle Database 19c-Utilitys oder Oracle Database 26ai-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 Formatparameter.

Optionen für das Avro-, ORC- oder Parquet-Dateiformat finden Sie unter DBMS_CLOUD-Paketformatoptionen für Avro, ORC oder 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 Standard-Datensatztrennzeichen ist detected newline. Mit detected newline versucht DBMS_CLOUD automatisch, das richtige Zeilenvorschubzeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll. DBMS_CLOUD sucht zuerst nach dem Windows-Neuzeilenzeichen \r\n. Wird das Windows-Zeilenvorschubzeichen ermittelt, wird es als Datensatz-Begrenzungszeichen für alle Dateien in der Prozedur verwendet. If a Windows newline character is not found, DBMS_CLOUD searches for the UNIX/Linux newline character \n, and if it finds one it uses \n as the record delimiter for all files in the procedure. Wenn die Quelldateien eine Kombination verschiedener Datensatzbegrenzungszeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported" auftreten. In diesem Fall müssen Sie entweder die Quelldateien ändern, um dasselbe Datensatzbegrenzungszeichen zu verwenden, oder nur die Quelldateien angeben, die dasselbe Datensatzbegrenzungszeichen verwenden.

Informationen zur Formatoption recorddelmiter finden Sie unter Formatparameter.

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

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

Bei dieser Prozedur mit dem Parameter format type, der auf den Wert avro, orc oder parquet gesetzt ist, werden Daten aus Avro-, ORC- oder Parquet-Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene autonome AI-Datenbanktabellen geladen.

Ähnlich wie Textdateien werden die Daten aus der Quelldatei Avro, ORC oder Parquet in die bereits 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.

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 mit 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 den 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

Beispiel:

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 benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Weitere Informationen zur REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format für die 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. Beim Dateinamen muss die Groß-/Kleinschreibung beachtet werden.

Mit Platzhaltern können Sie Dateinamen in einem Verzeichnis angeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden. Beispiel:'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: 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 Parquet-Dateien ignoriert.

Die Felder in der Quelle stimmen mit den Spalten der externen Tabelle nach Name überein. Quelldatentypen werden in den Datentyp der externen Tabellenspalte konvertiert.

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

Einzelheiten zur Zuordnung von Parquet-Dateien finden Sie unter DBMS_CLOUD Package Parquet to Oracle Data Type Mapping.

Details zur Zuordnung von Avro-Dateien finden Sie unter DBMS_CLOUD Package Avro to Oracle Data Type Mapping.

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-Paketformatoptionen für Avro, ORC oder Parquet.

Verwendungshinweise

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 im selben oder einem anderen Cloud-Objektspeicherprovider befinden.

Wenn sich Quelle und 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 Name der Quellzugangsdaten wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zielzugangsdatenname 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 Cloud-Quellobjektspeicher.

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

source_object_uri

Gibt den URI an, der auf den Quell-Object Storage-Bucket oder den Quellordner verweist.

Dieser Parameter ist obligatorisch.

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

target_object_uri

Gibt die URI für den Zielobjektspeicher an.

Dieser Parameter ist obligatorisch.

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

target_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicherort des Ziels.

Wenn Sie keinen target_credential_name-Wert angeben, wird target_object_uri auf den source_credential_name-Wert 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_EXTERNAL_PART_TABLE

Diese Prozedur erstellt eine externe partitionierte Tabelle auf Dateien in der Cloud oder aus Dateien in einem Verzeichnis. So können Sie Abfragen zu externen Daten aus Autonomous AI 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.
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 mit 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 den 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

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

Beispiel:

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 URI-Formate für Cloud-Objektspeicher.

Weitere Informationen zur REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

column_list

Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. Dieser Parameter hat die folgenden Anforderungen, je nach Typ der mit dem Parameter file_uri_list angegebenen Datendateien:

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

  • Der Parameter column_list ist bei strukturierten Dateien optional. Beispiel: Bei Avro-, ORC- oder Parquet-Datendateien ist column_list nicht erforderlich. Wenn die Option column_list nicht enthalten ist, muss der format-Parameter partition_columns 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 finden Sie unter field_list in Oracle Database 19c-Utilitys oder Oracle Database 26ai-Utilitys.
format

Die Formatoption partition_columns gibt die Spaltennamen und Datentypen DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE von Partitionsspalten an, wenn die Partitionsspalten vom Dateipfad abgeleitet werden, je nach Typ der Datendatei, strukturiert oder unstrukturiert:

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

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

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

  • Wenn DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE den Parameter column_list nicht enthält und die Datendateien strukturiert sind, wie Avro-, ORC- oder Parquet-Dateien, enthält die Option partition_columns sowohl den Spaltennamen, die Unterklausel name 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 wird, 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.

Alle Parameteroptionen für format, die das Format der Quelldateien beschreiben, finden Sie unter URI-Formate für Cloud Object Storage.

Verwendungshinweise

Beispiele

Beispiel: Verwenden 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: Verwenden der Parameter file_uri_list und column_list mit unstrukturierten Datendateien.

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: Verwenden Sie file_uri_list ohne den 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;
/

Beispiel: Externe partitionierte Tabellen mit den im C3-Objektspeicher-Bucket gespeicherten Objekten erstellen.

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
     table_name => 'USAGE_EXTP',
     credential_name => 'OBJECT_STORAGE_CREDENTIAL',
     file_uri_list => 'https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/usage-data/*usage-data*.parquet',
     format => json_object(
          'type' value 'parquet', 'schema' value 'first',
          'partition_columns' value json_array(
                json_object('name' value 'year', 'type' value 'number'),         
                json_object('name' value 'month', 'type' value 'number'),
                json_object('name' value 'day', 'type' value 'number')
          )
     )
   );
END;
/

Prozedur CREATE_EXTERNAL_TABLE

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

Syntax

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2,
    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.

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 entweder eine durch Komma getrennte Liste mit 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 den 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

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

Beispiel:

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 benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Weitere Informationen zur REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format für die 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. Beim Dateinamen muss die Groß-/Kleinschreibung beachtet werden.

Mit Platzhaltern können Sie Dateinamen in einem Verzeichnis angeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden. Beispiel:'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: 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 Arguments 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 under field_definitions Clause in Oracle Database 19c Utilities oder Oracle Database 26ai Utilities.
format

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

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

Verwendungshinweise

Beispiele

Beispiel: Externe Tabelle aus einer CSV-Datei in Object Storage erstellen

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

Beispiel: Eine externe Tabelle mit den im C3-Objektspeicher-Bucket gespeicherten Objekten erstellen.

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
     table_name =>'CHANNELS_EXT',
     credential_name =>'OBJECT_STORAGE_CREDENTIAL',
     file_uri_list => '<https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/channels.txt>',
     format => json_object('delimiter' value ','),
     column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)'
  );
END;
/

CREATE_EXTERNAL_TABLE-Prozedur für Apache Iceberg

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

Diese spezifischen Konfigurationen werden unterstützt:

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, die für den Zugriff auf die Datendateien, die Metadatendateien und den Iceberg-Katalog verwendet werden (sofern verwendet).

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

AWS Amazon Resource Names-(ARN-)Zugangsdaten 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 anhand der Parquet-/Avro-/ORC-Zuordnungen 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 je nach Typ der Iceberg-Tabelle eine andere Struktur und welche Informationen zum Erstellen der externen Tabelle verwendet werden, z.B. Informationen aus einem Datenkatalog oder eine direkte Metadaten-URI.

Weitere Informationen finden Sie unter Iceberg Support on OCI Data Flow Samples und DBMS_CLOUD URI-Formate.

Beispielformatparameter

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

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

So können Sie Abfragen zu externen Daten aus Autonomous AI 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.

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 mit 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 den 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

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

Beispiel:

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 benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Weitere Informationen zur REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

Verzeichnis

Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format für die 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. Beim Dateinamen muss die Groß-/Kleinschreibung beachtet werden.

Mit Platzhaltern können Sie Dateinamen in einem Verzeichnis angeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden. Beispiel:'MY_DIR:*" oder 'MY_DIR:test?'

Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: 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 wird, wird der Parameter format->schema überschrieben, der angibt, dass das Schema, die Spalten und die Datentypen automatisch abgeleitet werden. Weitere Informationen finden Sie im Formatparameter.

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

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

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

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

field_list

Wird für Avro-, ORC- oder Parquet-Dateien ignoriert.

Die Felder in der Quelle stimmen mit den Spalten der externen Tabelle nach Name überein. Quelldatentypen werden in den Datentyp der externen Tabellenspalte konvertiert.

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

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

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

format For Avro, ORC, or Parquet type source files, see DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet for details.

Beispiele

Tipp: Unter DBMS_CLOUD Package Avro, ORC und Parquet to Oracle Column Name Mapping finden Sie Informationen zur Verwendung der Spaltennamenszuordnung und Spaltennamenskonvertierung in Oracle SQL.

Prozedur CREATE_EXTERNAL_TEXT_INDEX

Mit dieser Prozedur wird ein Textindex für Object Storage-Dateien erstellt.

Die Prozedur CREATE_EXTERNAL_TEXT_INDEX erstellt einen Textindex für die Object Storage-Dateien, die im Verzeichnis location_uri angegeben sind. Der Index wird in regelmäßigen Abständen aktualisiert, für alle neuen Ergänzungen oder Löschungen, die mit Dateien auf der URI des Standorts vorgenommen 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.

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

location_uri

Dieser Parameter gibt eine durch Komma getrennte Liste der Quelldatei-URIs an.

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

Dieser Parameter ist obligatorisch.

URIs für Cloud-Quelldatei

Dieser Parameter gibt entweder eine durch Komma getrennte Liste mit 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird.

Beispiel für die Verwendung regulärer Ausdrücke

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

Beispiel mit Platzhaltern:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv

Das Format der URIs ist vom benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Weitere Informationen zur Bedingung REGEXP_LIKE finden Sie unter Bedingung REGEXP_LIKE.

index_name Gibt den Namen des Index an, den Sie auf den Dateien erstellen, die sich am Speicherort `location_uri` befinden.

Dieser Parameter ist obligatorisch.

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 indizierenden Dateien binär ist. Beispiel: PDF, MS-Word. Der Standardwert ist FALSE.

stop_words: Gibt eine Liste von Stoppwörtern 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 um eine Tabelle mit Stoppwörtern handelt. Wenn ein JSON-Array als Parameter für Stoppwörter angegeben wird, wird es als Liste behandelt. Andernfalls wird der Parameter für 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"]}'
  • Stoppworttabellenname: Beispiel: format := '{"stop_words":"STOP_WORDS_TABLE"}'

Wenn Sie keinen Parameter format angeben, wird format auf einen Wert NULL 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

Mit diesem Verfahren wird eine hybride partitionierte Tabelle erstellt. Auf diese Weise können Sie Abfragen für hybride partitionierte Daten aus der autonomen KI-Datenbank mit Datenbankobjekten und -dateien in der Cloud oder 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.
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 den 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 "?" gelten als Platzhalterzeichen, 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.

Muster regulärer Ausdrücke werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem Musterabgleich identisch, der von der Funktion REGEXP_LIKE ausgeführt wird. Reguläre Ausdrucksmuster werden für Verzeichnisnamen nicht unterstützt.

Beispiel:

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 REGEXP_LIKE-Bedingung finden Sie unter REGEXP_LIKE-Bedingung in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference.

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 finden Sie unter field_list in Oracle Database 19c-Utilitys oder Oracle Database 26ai-Utilitys.
format Die Optionen, die das Format der Quelldateien beschreiben. Die Liste der Optionen und Informationen zum Angeben der Werte finden Sie unter Formatparameter.

Verwendungshinweise

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.

Hinweis zur Verwendung

DBMS_CLOUD.DELETE_ALL_OPERATIONS löscht derzeit ausgeführte Vorgänge (Vorgänge mit dem Status "Wird ausgeführt") nicht.

Prozedur DELETE_FILE

Diese Prozedur entfernt die angegebene Datei aus dem angegebenen Verzeichnis in der autonomen AI-Datenbank.

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 autonomen AI-Datenbankinstanz.
file_name Der Name der zu entfernenden Datei.
force Fehler ignorieren und nicht melden, wenn die Datei nicht vorhanden ist. Gültige Werte sind: 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 auf dem Verzeichnis erteilen, in dem die Datei enthalten ist. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um atpc_user Schreibberechtigungen zu erteilen:

GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_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.
object_uri Objekt- oder Datei-URI des zu löschenden Objekts. Das Format der URI ist vom verwendeten Cloud-Objektspeicherservice abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher.
force Fehler ignorieren und nicht melden, wenn das Objekt nicht vorhanden ist. Gültige Werte sind: 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 angemeldet ist.

Syntax

DBMS_CLOUD.DELETE_OPERATION (
	id      IN NUMBER);

Parameter

Parameter Beschreibung
id Gibt die Vorgangs-ID an, die mit den zu löschenden Logdateieinträgen verknüpft ist.

Beispiel

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

Prozedur DROP_EXTERNAL_TEXT_INDEX

Bei dieser Prozedur wird der Textindex für die Object Storage-Dateien gelöscht.

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 Namen übereinstimmen, der zum Zeitpunkt der Indexerstellung angegeben wurde.

Dieser Parameter ist obligatorisch.

Beispiel

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

Prozedur EXPORT_DATA

Diese Prozedur exportiert Daten aus einer autonomen KI-Datenbank basierend auf dem Ergebnis einer Abfrage. Dieses Verfahren ist überlastet 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 Verzeichnisverzeichnis.

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.

Wenn der Parameter für Zugangsdaten nicht enthalten ist, gibt dies die Ausgabe in ein Verzeichnis an.

file_uri_list

Je nach Wert des Formatparameters und je nachdem, ob Sie einen Parameter für Zugangsdaten einschließen, gibt es verschiedene Formen:

  • Wenn der format-Parameterwert type json lautet: Die JSON im Objektspeicher oder in dem angegebenen Verzeichnisspeicher 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 Wert des format-Parameters type datapump ist, ist file_uri_list eine durch Komma getrennte Liste der Dumpdateien. Gibt die Dateien an, die im Objektspeicher erstellt werden sollen. Die Verwendung von Platzhaltern 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-Objektspeicherservice abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher.

format

Eine JSON-Zeichenfolge, die Exportformatoptionen bereitstellt.

Folgende Option wird unterstützt:

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

Siehe DBMS_CLOUD-Packageformatoptionen für EXPORT_DATA.

query

Verwenden Sie diesen Parameter, um eine SELECT-Anweisung anzugeben, damit nur die erforderlichen Daten exportiert werden. Die Abfrage bestimmt den Inhalt der Dateien, die Sie als CSV-, JSON-, Parquet- oder XML-Textdateien oder als Dumpdateien exportieren. Beispiel:

SELECT warehouse_id, quantity FROM inventories

Wenn der Wert für format type json ist, wird jedes Abfrageergebnis geprüft, und wenn es sich nicht um JSON handelt, wie mit der Funktion bestimmt: JSON_OBJECT_T.parse(), transformiert DBMS_CLOUD.EXPORT_DATA die Abfrage in die Funktion JSON_OBJECT, um die Zeile in JSON zu konvertieren. Weitere Informationen finden Sie unter JSON_OBJECT in der Oracle Database 19c SQL Language Reference oder in der Oracle Database 26ai SQL Language Reference und unter JSON_OBJECT_T Object Type in der Oracle Database 19c PL/SQL Packages and Types Reference oder in der Oracle Database 26ai PL/SQL Packages and Types Reference.

Beispiel:

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

operation_id Mit diesem Parameter kann der Fortschritt und der endgültige Status des Exportvorgangs als entsprechende ID in der USER_LOAD_OPERATIONS-Ansicht verfolgt werden.

Verwendungshinweise

Verwendungshinweise für `DBMS_CLOUD.EXPORT_DATA` mit Ausgabe in ein Verzeichnis

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

Beispiele

Beispiel: DBMS_CLOUD.EXPORT_DATA mit dem Parameter type im Format und 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;
/

Beispiel: DBMS_CLOUD.EXPORT_DATA mit dem Parameter type im Format und dem 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;
/

Beispiel: DBMS_CLOUD.EXPORT_DATA mit dem Parameter type im Format und dem 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 ));
     );
   END;
/

Prozedur und Funktion GET_OBJECT

Diese Prozedur ist überladen. Diese Prozedur liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in die autonome KI-Datenbank. Das Funktionsformular liest ein Objekt aus Cloud Object Storage und gibt eine BLOB an die autonome KI-Datenbank 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.
object_uri Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Objektspeicherservice abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher.
directory_name Der Name des Verzeichnisses in der Datenbank. (Siehe Fußnote 1 unten)
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, ist die Datei dekomprimierbar (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 atpc_user Schreibberechtigungen zu erteilen:

GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;

Rückgabewerte

Das Funktionsformular liest aus dem Objektspeicher, und DBMS_CLOUD.GET_OBJECT gibt einen 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;
/

Beispiel: Zeichendaten aus einer Datei im Objektspeicher lesen.

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;

Beispiel: So fügen Sie ein Bild hinzu, das im Objektspeicher in einem BLOB in der Datenbank gespeichert ist.

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.

Funktion LIST_FILES

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. Dieser Parameter unterstützt Platzhalter.

Verwendungshinweise

Beispiele

Beispiel: Verwenden Sie die folgende Abfrage, um DBMS_CLOUD.LIST_FILES als Pipelinedfunktion zu verwenden, die eine Zeile für jede Datei zurückgibt.

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

Sie können DBMS_CLOUD.LIST_FILES auch mit der Syntax DIRECTORY:FILE verwenden, indem Sie entweder eine Datei angeben oder Platzhalter verwenden. * und ? sind die unterstützten Platzhalterzeichen.

Beispiel: Zum Auflisten aller CSV-Dateien, die mit "f" beginnen, im Verzeichnis DATA_PUMP_DIR mit einem Platzhalter.

SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');

Beispiel: Zum Auflisten der Datei f1.csv im Verzeichnis DATA_PUMP_DIR, in dem der Dateiname angegeben wird.

SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');

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

Objektspeicher-Bucket oder Ordner-URI. Das Format der URIs ist vom benutzten Cloud-Objektspeichersystem abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud Object Storage.

Platzhalter werden unterstützt, um Dateien oder Unterordner in einer URI selektiv aufzulisten. Die Zeichen "*" und "?" gelten als Platzhalterzeichen.

Beispiel mit Platzhaltern:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv'

Verwendungshinweise

Beispiel

Dies ist eine Pipelined-Funktion, 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 aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen verschoben.

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

Wenn sich Quelle und 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 Name der Quellzugangsdaten wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zielzugangsdatenname 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 Cloud-Quellobjektspeicher.

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

source_object_uri

Gibt den URI an, der auf den Quell-Object Storage-Bucket oder den Quellordner verweist.

Dieser Parameter ist obligatorisch.

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

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

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

target_credential_name

Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicherort des Ziels.

Wenn Sie keinen target_credential_name-Wert angeben, wird target_object_uri auf den source_credential_name-Wert 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 einem Formular wird eine Datei aus der autonomen KI-Datenbank in den Cloud-Objektspeicher kopiert. In einer anderen Form kopiert die Prozedur eine BLOB aus der autonomen KI-Datenbank 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.
object_uri Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Objektspeicherservice abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher.
directory_name Der Name des Verzeichnisses in der Datenbank. (Siehe Fußnote 1 unten)
contents Gibt die BLOB an, die aus der autonomen KI-Datenbank 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 1

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

GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;

Beispiel

So verarbeiten Sie BLOB-Daten nach der datenbankinternen Verarbeitung 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;
/

Verwendungshinweise

Je nach Cloud-Objektspeicher ist die Größe des Objekts, das Sie übertragen, wie folgt begrenzt:

Cloud Object Storage-Service Limit für Objektübertragungsgröße
Oracle Cloud Infrastructure Object Storage 50 GB
Amazon S3 5 GB
Azure Blob-Speicher 256 MB
Amazon S3-kompatibel Vom Objektspeicherprovider festgelegt. Weitere Informationen hierzu finden Sie in der Dokumentation des Anbieters.

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 URI-Formate für Cloud-Objektspeicher.

Prozedur SYNC_EXTERNAL_PART_TABLE

Mit diesem Verfahren wird das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud vereinfacht. 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 eine Änderung des Schemas bewirken. Folgende Aktualisierungen werden unterstützt: neue Spalten, gelöschte Spalten. Aktualisierungen vorhandener Spalten, z.B. eine Änderung des Datentyps, werfen Fehler aus.

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 diese externe Tabelle angegebenen Formatoptionen in einer Badfile-Tabelle in Autonomous AI Database nicht entsprechen. 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, lesen Sie alle Partitionen sequenziell, bis rowcount erreicht ist.
subpartition_name Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, werden alle externen Partitionen oder Unterpartitionen sequenziell 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 einer autonomen KI-Datenbank 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 sich die externe Tabelle auf Avro-, ORC- oder Parquet-Dateien bezieht, wird die Validierung bei der ersten abgelehnten Zeile gestoppt.

Wenn die externe Tabelle den Parameter format type angibt, der 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 sich auf Avro-, ORC- oder Parquet-Dateien bezieht, immer leer.

Hinweis zur Verwendung

DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE funktioniert sowohl mit partitionierten externen Tabellen als auch mit hybriden 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 Partition oder Teile einer Partition in welcher Reihenfolge gelesen werden.

Prozedur VALIDATE_HYBRID_PART_TABLE

Diese Prozedur validiert die Quelldateien für eine hybride partitionierte Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die hybride Tabelle angegebenen Formatoptionen in einer Badfile-Tabelle in Autonomous AI Database nicht entsprechen. 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 Angabe gemacht wird, lesen Sie von allen externen Partitionen sequenziell, bis rowcount erreicht ist.
subpartition_name Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, werden alle externen Partitionen oder Unterpartitionen sequenziell 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.

Verwandte Inhalte