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.
Eine ausgehende Konnektivität muss von Ihrem Flottenadministrator mit einem NAT-Gateway konfiguriert worden sein, wie unten beschrieben:
-
Sie können ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN) erstellen, in das sich Ihre autonomen KI-Datenbankressourcen befinden, indem Sie die Anweisungen unter "NAT-Gateway erstellen" in der Oracle Cloud Infrastructure-Dokumentation befolgen.
-
Nachdem das NAT-Gateway erstellt wurde, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich autonome KI-Datenbankressourcen befinden. Damit können diese Ressourcen über das Gateway einen öffentlichen Schlüssel von Ihrer Azure AD-Instanz abrufen:
-
Gehen Sie zur Seite Subnetzdetails für das Subnetz.
-
Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzs, um die Seite Routentabellendetails anzuzeigen.
-
Überprüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
-
Ziel: 0.0.0.0/0
-
Zieltyp: NAT-Gateway
-
Ziel: Der Name des NAT-Gateways, das Sie gerade im VCN erstellt hat
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Routingregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Merkmalen hinzu.
-
-
Kehren Sie zur Seite Subnetzdetails für das Subnetz erneut zurück.
-
Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um das Register Sicherheitslistendetails anzuzeigen.
-
Klicke im Seitenmenü unter Ressourcen auf Egress-Regeln.
-
Überprüfen Sie in der Tabelle der vorhandenen Egress-Regeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
-
Zieltyp:CIDR
-
Ziel:0.0.0.0/0
-
IP-Protokoll:TCP
-
Quellportbereich:443
-
Zielportbereich: Alle
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Merkmalen hinzu.
-
-
Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.
Diese Einstellungen werden vom Flottenadministrator beim Erstellen der Exadata Cloud@Customer-Infrastruktur definiert, wie unter Exadata Database Service on Cloud@Customer mit der Konsole bereitstellen beschrieben.
Hinweis: Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis die Exadata-Infrastruktur den Status Aktivierung erforderlich aufweist. Sobald es aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.
Für das Einrichten eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Einzelheiten finden Sie unter Serviceanfrage in My Oracle Support erstellen.
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 Ä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 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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Beispiel: 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 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: 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: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: Beispiel: Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: |
format |
Die Optionen, die das Format der Quelldateien beschreiben. Diese Optionen werden als JSON-Zeichenfolge angegeben. Unterstützte Formate: 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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Beispiel: 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 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: 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: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: Beispiel: Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: |
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 Wenn der Wert der Option Ein Beispiel mit |
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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Beispiel: 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 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: 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: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: Beispiel: Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: |
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
-
Wie bei anderen Datendateien generieren Avro-, ORC- und Parquet-Dataloads Logs, die in den Tabellen
dba_load_operationsunduser_load_operationsangezeigt werden können. Jeder Ladevorgang fügt einen Datensatz zudba[user]_load_operationshinzu, der die Tabelle mit den Logs angibt.Die Logtabelle enthält zusammenfassende Informationen über den Ladevorgang.
-
Wenn für Avro, ORC oder Parquet der Parameter
formattypeauf den Wertavro,orcoderparquetgesetzt ist, ist die TabelleBADFILE_TABLEimmer leer.-
Bei Parquet-Dateien lösen
PRIMARY KEY-Constraint-Fehler einenORA-Fehler aus. -
Wenn Daten für eine Spalte einen Konvertierungsfehler feststellen. Beispiel: Die Zielspalte ist nicht groß genug, um den konvertierten Wert aufzunehmen, wird der Wert für die Spalte auf
NULLgesetzt. Dies führt nicht zu einem abgelehnten Datensatz.
-
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_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 |
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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Diese Option wird nur bei externen Tabellen unterstützt, die für eine Datei in Object Storage erstellt werden. Beispiel: Wenn Sie den Parameter Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher. Weitere Informationen zur |
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
|
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
Wenn die Datendateien unstrukturiert sind und die Unterklausel Bei Objektnamen, die nicht auf dem Hive-Format basieren, muss die Reihenfolge der angegebenen Alle Parameteroptionen für |
Verwendungshinweise
-
Sie können diese Prozedur nicht mit den Parametern
partitioning_clauseundfile_uri_listaufrufen. -
Die Angabe des Parameters
column_listist bei strukturierten Datendateien, einschließlich Avro-, Parquet- oder ORC-Datendateien, optional. Wenncolumn_listnicht angegeben ist, muss die Optionformat-Parameterpartition_columnssowohlnameals auchtypeenthalten. -
Der Parameter
column_listist für unstrukturierte Datendateien erforderlich, wie CSV-Textdateien. - Die Prozedur
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEunterstützt externe partitionierte Dateien in den unterstützten Cloud-Objektspeicherservices, einschließlich:- Oracle Cloud Infrastructure Object Storage
- Azure Blob-Speicher
Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher.
-
Das Verfahren
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEunterstützt externe partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem. -
Wenn Sie
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEmit dem Parameterfile_uri_listaufrufen, müssen die im Dateinamen des Cloud-Objektspeichers angegebenen Spaltentypen einen der folgenden Typen aufweisen:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9) -
Das Standard-Datensatztrennzeichen ist
detected newline. Mitdetected newlineversuchtDBMS_CLOUDautomatisch, das richtige Zeilenvorschubzeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll.DBMS_CLOUDsucht 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_CLOUDsearches for the UNIX/Linux newline character\n, and if it finds one it uses\nas 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
recorddelmiterfinden Sie unter URI-Formate für Cloud-Objektspeicher. -
Die externen partitionierten Tabellen, die Sie mit
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEerstellen, enthalten zwei unsichtbare Spaltenfile$pathundfile$name. Mit diesen Spalten können Sie ermitteln, aus welcher Datei ein Datensatz stammt.-
file$path: Gibt den Dateipfadtext bis zum Anfang des Objektnamens an. -
file$name: Gibt den Objektnamen an, einschließlich des gesamten Textes, der dem Bucket-Namen folgt.
-
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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Diese Option wird nur bei externen Tabellen unterstützt, die für eine Datei in Object Storage erstellt werden. Beispiel: 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 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: 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: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: Beispiel: Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: |
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
-
Die Prozedur
DBMS_CLOUD.CREATE_EXTERNAL_TABLEunterstützt externe partitionierte Dateien in den unterstützten Cloud-Objektspeicherservices, einschließlich Azure Blob Storage.Die Zugangsdaten stellen eine Eigenschaft auf Tabellenebene dar. Daher müssen sich die externen Dateien in demselben Objektspeicher befinden.
Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher.
-
Das Standard-Datensatztrennzeichen ist
detected newline. Mitdetected newlineversuchtDBMS_CLOUDautomatisch, das richtige Zeilenvorschubzeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll.DBMS_CLOUDsucht 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_CLOUDsearches for the UNIX/Linux newline character\n, and if it finds one it uses\nas 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
recorddelimiterfinden Sie unter Formatparameter.
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:
-
Iceberg-Tabellen auf AWS:
-
Bei AWS Glue Data Catalog registrierte Iceberg-Tabellen, die mit Spark oder Athena erstellt wurden.
Weitere Informationen finden Sie unter Mit dem AWS Glue-Connector können Sie Apache Iceberg-Tabellen mit ACID-Transaktionen lesen und schreiben sowie Zeitreisen durchführen und Eisberg-Tabellen verwenden.
-
Iceberg-Tabellen, die auf AWS S3 gespeichert sind, indem Sie direkt die URL für die Root-Metadatendatei angeben.
-
-
Iceberg-Tabellen auf OCI:
-
Iceberg-Tabellen, die mit OCI Data Flow mit einem Hadoop-Katalog generiert wurden.
Weitere Informationen finden Sie unter Oracle Data Flow-Beispiele und Hadoop-Katalog verwenden.
-
In OCI Object Storage gespeicherte Iceberg-Tabellen, indem die URL für die Root-Metadatendatei direkt angegeben wird.
-
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 |
field_list |
Muss NULL sein, da Spaltennamen und Datentypen automatisch aus den Iceberg-Metadaten abgeleitet werden. |
format |
Der Parameter Weitere Informationen finden Sie unter Iceberg Support on OCI Data Flow Samples und DBMS_CLOUD URI-Formate. |
Beispielformatparameter
-
Beim Erstellen von Tabellen über eine AWS Iceberg-Tabelle mit einem AWS Glue-Katalog gehen Sie wie folgt vor:
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_protocolein JSON-Objekt mit zwei Elementen wie folgt:protocol_type: Muss "iceberg" seinprotocol_config: Ein verschachteltes JSON-Objekt, das die Iceberg-Katalogdetails angibt.iceberg_catalog_type: Muss'aws_glue'seiniceberg_glue_region: Die Katalogregion, z.B.'us-west-1'iceberg_table_path: Einglue database.glue table name-Pfad.
-
Beim Erstellen von Tabellen über eine AWS Iceberg-Tabelle mit einer Metadatendatei-URI gehen Sie wie folgt vor:
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg') -
Beim Erstellen von Tabellen über eine OCI Iceberg-Tabelle, die von OCI Data Flow mit HadoopCatalog-Katalog erstellt wurde, gehen Sie wie folgt vor:
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_protocolein JSON-Objekt mit zwei Elementen wie folgt:protocol_type: Muss'iceberg'seinprotocol_config: Ein verschachteltes JSON-Objekt, das die Iceberg-Katalogdetails angibt.iceberg_catalog_type: Muss'hadoop'seiniceberg_warehouse: Der Warehouse-Verzeichnispfad, der beim Generieren der Tabelle im nativen URI-Format verwendet wird.iceberg_table_path: Der Pfaddatabase_name.table name, der beim Erstellen der Tabelle verwendet wird.
-
Beim Erstellen von Tabellen über eine OCI Iceberg-Tabelle mit der URI der Metadatendatei lauten die folgenden Schritte:
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg')Wenn der Parameter
access_protocolein JSON-Objekt mit einem Element enthält, mussprotocol_type'iceberg'sein.
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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Diese Option wird nur bei externen Tabellen unterstützt, die für eine Datei in Object Storage erstellt werden. Beispiel: 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 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: 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: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine kommagetrennte Verzeichnisliste: Beispiel: Verwenden Sie doppelte Anführungszeichen, um einen Verzeichnisnamen anzugeben, bei dem die Groß-/Kleinschreibung beachtet wird. Beispiel: Um ein Anführungszeichen einzuschließen, verwenden Sie zwei Anführungszeichen. Beispiel: |
column_list |
(Optional) Wenn dieses Feld angegeben wird, wird der Parameter Wenn die 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
-
ORC
format => '{"type":"orc", "schema": "all"}'format => json_object('type' value 'orc', 'schema' value 'first') -
Avro
format => '{"type":"avro", "schema": "all"}'format => json_object('type' value 'avro', 'schema' value 'first') -
Parquet
format => '{"type":"parquet", "schema": "all"}'format => json_object('type' value 'parquet', 'schema' value 'first')
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 |
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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Beispiel für die Verwendung regulärer Ausdrücke Beispiel mit Platzhaltern:
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 |
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:
Der Wert Sie können Stoppwörter mit den folgenden Methoden angeben:
Wenn Sie keinen Parameter |
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 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 Die Zeichen "*" und "?" gelten als Platzhalterzeichen, wenn der Parameter 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 Beispiel: Weitere Informationen zur |
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
-
Die Prozedur
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEunterstützt externe partitionierte Dateien in den unterstützten Cloud-Objektspeicherservices, einschließlich Azure Blob Storage.Die Zugangsdaten stellen eine Eigenschaft auf Tabellenebene dar. Daher müssen sich die externen Dateien in demselben Objektspeicher befinden.
Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher.
-
Die Prozedur
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEunterstü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_TABLEerstellen, enthalten zwei unsichtbare Spaltenfile$pathundfile$name. Mit diesen Spalten können Sie ermitteln, aus welcher Datei ein Datensatz stammt.-
file$path: Gibt den Dateipfadtext bis zum Anfang des Objektnamens an. -
file$name: Gibt den Objektnamen an, einschließlich des gesamten Textes, der dem 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 Wenn kein |
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:
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:
|
query |
Verwenden Sie diesen Parameter, um eine Wenn der Wert für Beispiel: |
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
-
Der angegebene Parameterwert
querykann bei Bedarf eine erweiterte Abfrage sein, z.B. eine Abfrage, die Joins oder Unterabfragen enthält. -
Je nach angegebenem Formatparameter gibt
DBMS_CLOUD.EXPORT_DATAdie Ergebnisse der angegebenen Abfrage im Cloud-Objektspeicher oder in CSV-, JSON-, Parquet- oder XML-Dateiformaten an einen Verzeichnisspeicherort aus.Weitere Informationen zur Verwendung von
DBMS_CLOUD.EXPORT_DATAmit CSV-, JSON-, Parquet- oder XML-Ausgabedateien finden Sie unter Daten mit DBMS_CLOUD.EXPORT_DATA als Text in Objektspeicher exportieren und Daten mit DBMS_CLOUD.EXPORT_DATA in ein Verzeichnis exportieren. -
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 Ergebnisdaten haben, können mehrere Ausgabedateien vorhanden sein, abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Instanz der autonomen KI-Datenbank.
Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).
Die standardmäßige Chunk-Größe der Ausgabedatei beträgt 10 MB für CSV, JSON oder XML. Sie können diesen Wert mit der Option
maxfilesizedes Parametersformatändern. Weitere Informationen finden Sie unter DBMS_CLOUD Package Format Options for EXPORT_DATA. -
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 Ergebnisdaten haben, können mehrere Ausgabedateien vorhanden sein, abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Instanz der autonomen KI-Datenbank.
Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).
-
Das Parkettausgabeformat kann nur mit High- und Medium-Datenbankservices für autonome KI-Datenbanken auf dedizierter Exadata-Infrastruktur verwendet werden.
Verwendungshinweise für `DBMS_CLOUD.EXPORT_DATA` mit Ausgabe in ein Verzeichnis
-
Das angegebene Verzeichnis muss vorhanden sein, und Sie müssen als Benutzer
ADMINangemeldet sein oderWRITE-Zugriff auf das Verzeichnis haben. -
DBMS_CLOUD.EXPORT_DATAerstellt keine Verzeichnisse. -
Die Prozedur überschreibt keine Dateien. Beispiel: Wenn eine Dumpdatei in
file_uri_listvorhanden ist, meldetDBMS_CLOUD.EXPORT_DATAeinen Fehler wie:
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
-
Um
DBMS_CLOUD.LIST_FILESmit 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, umatpc_userLeseberechtigungen zu erteilen:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user; - Dies ist eine Pipelined-Tabellenfunktion mit dem Rückgabetyp
DBMS_CLOUD_TYPES.list_object_ret_t. DBMS_CLOUD.LIST_FILESruft den Prüfsummenwert nicht ab und gibtNULLfür dieses Feld zurück.DBMS_CLOUD.LIST_FILESunterstützt das selektive Filtern von Dateien mit derdirectory:filename-Syntax. Platzhalter werden im Dateinamen unterstützt.
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 " Beispiel mit Platzhaltern: |
Verwendungshinweise
-
Je nach den Funktionen des Objektspeichers gibt
DBMS_CLOUD.LIST_OBJECTSkeine Werte für bestimmte Attribute zurück, und der Rückgabewert für das Feld lautet in diesem FallNULL.Alle unterstützten Objektspeicher geben Werte für die Felder
OBJECT_NAME,BYTESundCHECKSUMzurück. In der folgenden Tabelle wird die Unterstützung für die FelderCREATEDundLAST_MODIFIEDnach Objektspeicher angezeigt:Objektspeicher CREATEDLAST_MODIFIEDOracle Cloud Infrastructure-nativ Gibt den Zeitstempel zurück Gibt den Zeitstempel zurück Oracle Cloud Infrastructure – Swift Gibt NULLzurückGibt den Zeitstempel zurück Amazon S3 Gibt NULLzurückGibt den Zeitstempel zurück Amazon S3-kompatibel Gibt NULLzurückGibt den Zeitstempel zurück Azure Gibt den Zeitstempel zurück Gibt den Zeitstempel zurück -
Der Prüfsummenwert ist die MD5-Prüfsumme. Dies ist eine Hexadezimalzahl mit 32 Zeichen, die für den Objektinhalt berechnet wird.
-
Dies ist eine Pipelined-Tabellenfunktion mit dem Rückgabetyp
DBMS_CLOUD_TYPES.list_object_ret_t.
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_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 |
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: |
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 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 |
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. |