DBMS_CLOUD für Objekte und Dateien
In diesem Abschnitt werden die DBMS_CLOUD
-Unterprogramme beschrieben, die zum Arbeiten mit Objekten und Dateien verwendet werden.
Voraussetzungen
Als Entwickler können Sie DBMS_CLOUD-Prozeduren mit Autonomous Databases verwenden, die in Oracle Public Cloud, Multicloud oder Exadata Cloud@Customer bereitgestellt sind.
Je nach Deployment-Auswahl müssen die folgenden Voraussetzungen erfüllt sein, um die DBMS_CLOUD-Prozeduren mit den Serviceprovidern Amazon S3, Azure Blob Storage und Google Cloud Storage zu verwenden.
- Erstellen Sie ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN), in dem sich Ihre Autonomous Database-Ressourcen befinden, indem Sie die Anweisungen unter NAT-Gateway erstellen in der Oracle Cloud Infrastructure-Dokumentation befolgen.
- Nachdem Sie das NAT-Gateway erstellt haben, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich Autonomous Database-Ressourcen befinden. So können diese Ressourcen mit dem Gateway einen Public Key aus 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 Subnetzes, um die Seite Routentabellendetails anzuzeigen.
- Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zielort: 0.0.0.0/0
- Zieltyp: NAT-Gateway
- Ziel: Der Name des NAT-Gateway, das Sie gerade im VCN erstellt haben
Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.
- Zurück zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
- Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
- Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zieltyp: CIDR
- Zielort: 0.0.0.0/0
- IP-Protokoll: TCP
- Quellportbereich: 443
- Ziel-Portbereich: Alle
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.
Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.
Hinweis:
Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.
DBMS_CLOUD Unterprogramme für Objekte und Dateien
Die Unterprogramme für die Objekt- und Dateiverwaltung im Package DBMS_CLOUD.
Unterprogramm | Beschreibung |
---|---|
Diese Prozedur lädt Daten aus dem Cloud-Objektspeicher oder aus Dateien in einem Verzeichnis in eine vorhandene SODA-Collection. | |
Diese Prozedur lädt Daten aus dem Cloud-Objektspeicher oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen. | |
Diese Prozedur, bei der der Parameter format type auf den Wert orc , parquet oder avro gesetzt ist, lädt Daten aus ORC-, Parquet- oder Avro-Dateien in der Cloud oder aus ORC-, Parquet- oder Avro-Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.
Ähnlich wie Textdateien werden die Daten aus der ORC-, Parquet- oder Avro-Quelldatei in die vorhandene interne Tabelle kopiert. |
|
Diese Prozedur kopiert Dateien aus einem Cloud-Objektspeicher-Bucket in einen anderen. | |
Diese Prozedur erstellt eine externe Tabelle für Dateien in der Cloud oder für Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen. | |
Prozedur CREATE_EXTERNAL_TABLE für Avro-, ORC- oder Parkettdateien |
Diese Prozedur mit dem format -Parameter type , der auf den Wert parquet , orc oder avro gesetzt ist, erstellt eine externe Tabelle mit Dateien im Parquet-, ORC- oder Avroformat in der Cloud oder in einem Verzeichnis.
So können Sie Abfragen für externe Daten aus Autonomous Database ausführen. |
Diese Prozedur erstellt einen Textindex für die Objektspeicherdateien. |
|
Diese Prozedur erstellt eine Hybrid-partitionierte Tabelle. So können Sie Abfragen hybrider partitionierter Daten aus Autonomous Database ausführen. | |
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.
|
|
Diese Prozedur entfernt die angegebene Datei aus dem angegebenen Verzeichnis in Autonomous Database | |
Diese Prozedur löscht das angegebene Objekt im Objektspeicher. | |
Diese Prozedur akzeptiert eine |
|
Diese Prozedur löscht den Textindex für die Objektspeicherdateien. |
|
Diese Prozedur exportiert Daten aus Autonomous Database basierend auf dem Ergebnis einer Abfrage in Dateien in der Cloud. Mit dem überladenen Formular können Sie den Parameter operation_id verwenden. Je nach angegebener Option für den Parameter format type exportiert die Prozedur Zeilen als Text mit den Optionen CSV, JSON, Parquet oder XML in den Cloud-Objektspeicher. |
|
Diese Prozedur ist überladen. Die Prozedurform liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous Database. Die Funktionsform liest ein Objekt aus dem Cloud-Objektspeicher und gibt ein BLOB an Autonomous Database zurück.
|
|
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. | |
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. | |
Diese Prozedur verschiebt ein Objekt von einem Cloud-Objektspeicher-Bucket in einen anderen. | |
Diese Prozedur ist überladen. In einer Form kopiert die Prozedur eine Datei aus Autonomous Database in den Cloud-Objektspeicher. In einer anderen Form kopiert die Prozedur ein BLOB aus Autonomous Database in den Cloud-Objektspeicher.
|
|
Diese Prozedur vereinfacht das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud. Führen Sie diese Prozedur aus, wenn neue Partitionen hinzugefügt werden oder wenn Partitionen aus der Objektspeicherquelle für die externe partitionierte Tabelle entfernt werden. |
|
Diese Prozedur validiert die Quelldateien für eine externe Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen in einer badfile-Tabelle in Autonomous Database nicht entsprechen. | |
Diese Prozedur validiert die Quelldateien für eine externe partitionierte Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database. | |
Diese Prozedur validiert die Quelldateien für eine Hybridpartitionierungstabelle, generiert Loginformationen und speichert die Zeilen, die den für die Hybridtabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database. |
Prozedur COPY_COLLECTION
Diese Prozedur lädt Daten aus dem Cloud-Objektspeicher oder aus einem Verzeichnis in eine SODA-Collection. Wenn die angegebene SODA-Collection nicht vorhanden ist, wird sie von der Prozedur erstellt. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Syntax
DBMS_CLOUD.COPY_COLLECTION
(
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.COPY_COLLECTION
(
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER
);
Parameter
Parameter | Beschreibung |
---|---|
|
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. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit |
|
Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an. URIs für Cloud-Quelldatei Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiel:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste mit Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Sie können Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. 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 durch Komma getrennte 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: |
|
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 Database auch andere Formate. Die Liste der von Autonomous Database unterstützten Formatargumente finden Sie unter Formatparameter. |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View |
Beispiel
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
username => 'user_name@oracle.com',
password => 'password'
);
DBMS_CLOUD.COPY_COLLECTION
(
collection_name => 'myCollection',
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'
);
END;
/
Prozedur COPY_DATA
Diese Prozedur lädt Daten aus Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Syntax
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2,
field_list IN CLOB,
format IN CLOB);
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
schema_name IN VARCHAR2 DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
operation_id OUT NOCOPY NUMBER);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zieltabelle in der Datenbank. Die Zieltabelle muss erstellt werden, bevor Sie |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit |
|
Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden. URIs für Cloud-Quelldatei Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiel:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste mit Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Sie können Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. 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 durch Komma getrennte 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: |
|
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. |
|
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 die Option Ein Beispiel mit |
|
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. Informationen zu den Dateiformatoptionen Avro, ORC oder Parquet finden Sie unter DBMS_CLOUD-Package - Formatoptionen für Avro, ORC oder Parquet. |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View |
Hinweis zur Verwendung
Das Standardbetrennzeichen für Datensätze 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-Zeilenvorschubzeichen \r\n
. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzungszeichen verwendet. Wenn kein Windows-Zeilenvorschubzeichen gefunden wird, sucht DBMS_CLOUD
nach dem UNIX/Linux-Zeilenvorschubzeichen \n
. Wird dieses gefunden, wird \n
für alle Dateien in der Prozedur als Datensatzbegrenzungszeichen verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported
" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatzbegrenzungszeichen angeben, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatzbegrenzungszeichen verwenden.
Weitere 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;
/
Prozedur COPY_DATA für Avro-, ORC- oder Parquet-Dateien
format
type
auf den Wert avro
, orc
oder parquet
gesetzt ist, lädt Daten aus Avro-, ORC- oder Parquet-Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.
Ähnlich wie Textdateien werden die Daten aus der Avro-, ORC- oder Parquet-Quelldatei in die 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 |
---|---|
|
Der Name der Zieltabelle in der Datenbank. Die Zieltabelle muss erstellt werden, bevor Sie |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit |
|
Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an. URIs für Cloud-Quelldatei Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiel:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste mit Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Sie können Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. 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 durch Komma getrennte 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: |
|
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. |
|
Wird für Avro-, ORC- oder Parquet-Dateien ignoriert. Die Felder in der Quelle entsprechen den Spalten der externen Tabelle nach Namen. Quelldatentypen werden in den Datentyp der externen Tabellenspalte konvertiert. Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von ORC zu Oracle. Informationen zur Zuordnung bei Parquet-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von Parquet zu Oracle. Informationen zur Zuordnung bei Avro-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von Avro zu Oracle. |
|
Die Optionen, die das Format der Quelldateien beschreiben. Für Avro-, ORC- oder Parquet-Dateien werden nur zwei Optionen unterstützt: siehe DBMS_CLOUD-Package - Formatoptionen für Avro, ORC oder Parquet. |
Verwendungshinweise
-
Wie bei anderen Datendateien generieren Dataloads von Avro, ORC und Parquet Logs, die in den Tabellen
dba_load_operations
unduser_load_operations
angezeigt werden können. Bei jedem Ladevorgang wird ein Datensatz zudba
[Benutzer]_load_operations
hinzugefügt, der die Tabelle mit den Logs angibt.Die Logtabelle enthält zusammenfassende Informationen zum Ladevorgang.
-
Wenn bei Avro, ORC oder Parquet der
format
-Parametertype
auf den Wertavro
,orc
oderparquet
gesetzt ist, ist die TabelleBADFILE_TABLE
immer leer.-
Bei Parquet-Dateien lösen
PRIMARY KEY
-Constraint-Fehler einenORA
-Fehler aus. -
Wenn bei Daten für eine Spalte ein Konvertierungsfehler auftritt, z.B. wenn die Zielspalte nicht groß genug ist, um den konvertierten Wert aufzunehmen, wird der Wert für die Spalte auf
NULL
gesetzt. 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.
Quell- und Ziel-Bucket oder -Ordner können sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.
Wenn sich Quelle und Ziel in eindeutigen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.
Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname 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 |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Quellobjektspeicher. Wenn Sie keinen |
|
Gibt die URI an, die auf den Object Storage-Quell-Bucket oder den Speicherort des Ordners verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher. |
|
Gibt die URI für den Zielobjektspeicher an. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort. 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 für Dateien in der Cloud oder aus Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. |
|
Gibt die vollständige Partitionierungsklausel an, einschließlich der Speicherortinformationen für einzelne Partitionen. Wenn Sie den Parameter |
|
Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an. URIs für Cloud-Quelldatei Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Diese Option wird nur bei externen Tabellen unterstützt, die in einer Datei im 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 Bedingung |
|
Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. Für diesen Parameter gibt es je nach Typ der Datendateien die folgenden Anforderungen:
|
|
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 |
|
Die Formatoption
Wenn die Datendateien unstrukturiert sind und die Unterklausel Bei Objektnamen, die nicht auf dem Hive-Format basieren, muss die Reihenfolge der von Informationen zu allen |
Verwendungshinweise
-
Sie können diese Prozedur nicht mit beiden Parametern aufrufen:
partitioning_clause
undfile_uri_list
. -
Die Angabe des Parameters
column_list
ist bei strukturierten Datendateien, einschließlich Avro-, Parquet- oder ORC-Datendateien, optional. Wenncolumn_list
nicht angegeben wird, muss die Optionpartition_columns
des Parametersformat
sowohlname
als auchtype
enthalten. -
Der Parameter
column_list
ist bei unstrukturierten Datendateien wie CSV-Textdateien erforderlich. -
Die Prozedur
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
unterstützt externe partitionierte Dateien in den unterstützen Cloud-Objektspeicherservices, darunter:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage
Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher.
-
-
Das Verfahren
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
unterstützt externe partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem. -
Wenn Sie
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
mit dem Parameterfile_uri_list
aufrufen, muss es sich bei den Typen für die im Dateinamen des Cloud-Objektspeicher angegebenen Spalten um einen der folgenden Typen handeln:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9)
-
Das Standardbetrennzeichen für Datensätze ist
detected newline
. Mitdetected newline
versuchtDBMS_CLOUD
automatisch, das richtige Zeilenvorschubzeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll.DBMS_CLOUD
sucht zuerst nach dem Windows-Zeilenvorschubzeichen\r\n
. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzungszeichen verwendet. Wenn kein Windows-Zeilenvorschubzeichen gefunden wird, suchtDBMS_CLOUD
nach dem UNIX/Linux-Zeilenvorschubzeichen\n
. Wird dieses gefunden, wird\n
für alle Dateien in der Prozedur als Datensatzbegrenzungszeichen verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported
" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatzbegrenzungszeichen angeben, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatzbegrenzungszeichen verwenden.Informationen zur Formatoption
recorddelmiter
finden Sie unter URI-Formate für Cloud-Objektspeicher. -
Die externen partitionierten Tabellen, die Sie mit
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
erstellen, enthalten zwei unsichtbare Spalten:file$path
undfile$name
. Anhand dieser 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 auf den Bucket-Namen folgt.
-
Beispiele
Beispiel für die Verwendung des Parameters partitioning_clause
:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
Beispiel für die Verwendung der Parameter file_uri_list
und column_list
mit unstrukturierten 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 für die Verwendung von 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;
/
Prozedur CREATE_EXTERNAL_TABLE
Diese Prozedur erstellt eine externe Tabelle für Dateien in der Cloud oder aus Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
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 |
|
Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an. URIs für Cloud-Quelldatei Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Diese Option wird nur bei externen Tabellen unterstützt, die in einer Datei im Object Storage erstellt werden. Beispiel:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher. Weitere Informationen zur Bedingung Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste mit Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Sie können Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. 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 durch Komma getrennte 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: |
|
Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. |
|
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 |
|
Die Optionen, die das Format der Quelldateien beschreiben. Die Liste der Optionen und Informationen zum Angeben der Werte finden Sie unter Formatparameter. Informationen zu Dateien im Format Avro, ORC oder Parquet finden Sie unter Prozedur CREATE_EXTERNAL_TABLE für Avro-, ORC- oder Parquet-Dateien. |
Verwendungshinweise
-
Die Prozedur
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
unterstützt externe partitionierte Dateien in den unterstützten Cloud-Object Storage-Services, 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 Standardbetrennzeichen für Datensätze ist
detected newline
. Mitdetected newline
versuchtDBMS_CLOUD
automatisch, das richtige Zeilenvorschubzeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll.DBMS_CLOUD
sucht zuerst nach dem Windows-Zeilenvorschubzeichen\r\n
. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzungszeichen verwendet. Wenn kein Windows-Zeilenvorschubzeichen gefunden wird, suchtDBMS_CLOUD
nach dem UNIX/Linux-Zeilenvorschubzeichen\n
. Wird dieses gefunden, wird\n
für alle Dateien in der Prozedur als Datensatzbegrenzungszeichen verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported
" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatzbegrenzungszeichen angeben, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatzbegrenzungszeichen verwenden.Informationen zur Formatoption
recorddelimiter
finden Sie unter Formatparameter.
Beispiel
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
Prozedur CREATE_EXTERNAL_TABLE für Avro, ORC oder Parquet-Dateien
format
-Parameter type
, der auf den Wert avro
, orc
oder parquet
gesetzt ist, erstellt eine externe Tabelle mit Dateien im Format Avro, ORC oder Parquet in der Cloud oder in einem Verzeichnis.
So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis mit |
|
Dieser Parameter gibt entweder eine durch Komma getrennte Liste der Quelldatei-URIs oder ein oder mehrere Verzeichnisse und Quelldateien an. URIs für Cloud-Quelldatei Sie können Platzhalter sowie reguläre Ausdrücke in den Dateinamen in Cloud-Quelldatei-URIs verwenden. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Diese Option wird nur bei externen Tabellen unterstützt, die in einer Datei im Object Storage erstellt werden. Beispiel:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine durch Komma getrennte Liste mit Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Sie können Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. 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 durch Komma getrennte 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: |
|
(Optional) Wenn dieses Feld angegeben ist, überschreibt es den Parameter Wenn Informationen zu Parquet-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von Parquet zu Oracle. Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von ORC zu Oracle. Informationen zu Avro-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von Avro zu Oracle. |
|
Wird für Avro-, ORC- oder Parquet-Dateien ignoriert. Die Felder in der Quelle entsprechen den Spalten der externen Tabelle nach Namen. Quelldatentypen werden in den Datentyp der externen Tabellenspalte konvertiert. Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von ORC zu Oracle Informationen zu Parquet-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von Parquet zu Oracle. Informationen zu Avro-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von Avro zu Oracle. |
|
Weitere Informationen zu Quelldateien für Avro, ORC oder Parquet |
Beispiele: ORC
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
Beispiele: Avro
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
Beispiele: Parquet
format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')
Zuordnung von Avro-, ORC- oder Parquet-Spaltennamen zu Oracle-Spaltennamen
Informationen zur Zuordnung von Spaltennamen und zur Verwendung der Spaltennamenskonvertierung in Oracle SQL finden Sie unter DBMS_CLOUD-Package - Spaltennamenszuordnung von Avro, ORC und Parquet zu Oracle.
Prozedur CREATE_EXTERNAL_TEXT_INDEX
Diese Prozedur erstellt einen Textindex für Object Storage-Dateien.
Die Prozedur CREATE_EXTERNAL_TEXT_INDEX
erstellt einen Textindex für die Object Storage-Dateien, die im Verzeichnis location_uri
angegeben sind. Der Index wird in regelmäßigen Abständen für alle neuen Hinzufügungen oder Löschungen aktualisiert, die mit Dateien in der Speicherort-URI 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 |
---|---|
|
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 |
Gibt den Objektspeicher-Bucket oder die Ordner-URI an. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD Package File Cloud Object Storage-URI-Formate. |
index_name |
Gibt den Namen des Index an, den Sie für die Dateien im Verzeichnis location_uri erstellen.
Dieser Parameter ist erforderlich. |
|
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 |
Beispiel
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/
Prozedur CREATE_HYBRID_PART_TABLE
Diese Prozedur erstellt eine Hybrid-partitionierte Tabelle. Auf diese Weise können Sie Abfragen für hybride partitionierte Daten aus Autonomous Database mit Datenbankobjekten und -dateien in der Cloud oder mit Datenbankobjekten und -dateien in einem Verzeichnis ausführen.
Syntax
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. |
|
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 Cloud-Quelldatei-URIs verwenden. Reguläre Ausdrücke können nur verwendet werden, wenn der Parameter Die Zeichen "*" und "?" werden als Platzhalterzeichen betrachtet, wenn der Parameter Normale Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiel:
Weitere Informationen zur Bedingung |
|
Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. |
|
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 |
|
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_TABLE
unterstützt externe partitionierte Dateien in den unterstützten Cloud-Object Storage-Services, 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 Verfahren
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
unterstützt hybride partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem. -
Die externen partitionierten Tabellen, die Sie mit
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
erstellen, enthalten zwei unsichtbare Spalten:file$path
undfile$name
. Anhand dieser 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 auf den Bucket-Namen folgt.
-
Beispiele
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name =>'HPT1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) external location
( ''&base_URL/file_11.txt'')
,
partition p2 values less than (2000) external location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000)
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name => 'HPT1',
format => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
partitioning_clause => 'partition by range (B 2 ALANCE)
(partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
partition p3 values less than (3000))' );
END;
/
Prozedur DELETE_ALL_OPERATIONS
Diese Prozedur löscht entweder alle in der Tabelle user_load_operations
in Ihrem Schema protokollierten Dataload-Vorgänge oder alle Dataload-Vorgänge des angegebenen Typs, wie mit dem Parameter type
angegeben.
Syntax
DBMS_CLOUD.DELETE_ALL_OPERATIONS
(
type IN VARCHAR DEFAULT NULL);
Parameter
Parameter | Beschreibung |
---|---|
|
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 Autonomous Database.
Syntax
DBMS_CLOUD.DELETE_FILE
(
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name des Verzeichnisses in der Autonomous Database-Instanz. |
|
Der Name der zu entfernenden Datei. |
force |
Ignorieren und melden Sie keine Fehler, wenn die Datei nicht vorhanden ist. Gültige Werte: |
Hinweis:
UmDBMS_CLOUD.DELETE_FILE
mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Schreibberechtigungen für das Verzeichnis erteilen, das die Datei enthält.Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um 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 |
---|---|
|
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: |
Beispiel
BEGIN
DBMS_CLOUD.DELETE_OBJECT
(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
Prozedur DELETE_OPERATION
Diese Prozedur löscht die Dataload-Einträge für die angegebene Vorgangs-ID, die in den Tabellen user_load_operations
oder dba_load_operations
in Ihrem Schema protokolliert wurde.
Syntax
DBMS_CLOUD.DELETE_OPERATION
(
id IN NUMBER);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die Vorgangs-ID an, die mit den Logdateieinträgen verknüpft ist, die Sie löschen möchten. |
Beispiel
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
Prozedur DROP_EXTERNAL_TEXT_INDEX
Diese Prozedur löscht den Textindex für die Object Storage-Dateien.
Die Prozedur DROP_EXTERNAL_TEXT_INDEX
löscht den angegebenen Index, der mit der Prozedur CREATE_EXTERNAL_TEXT_INDEX
erstellt wurde.
Syntax
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name IN VARCHAR2,
);
Parameter
Parameter | Beschreibung |
---|---|
index_name |
Gibt den Namen des Index an, den Sie löschen. Der Indexname muss mit dem Namen übereinstimmen, der zum Zeitpunkt der Indexerstellung angegeben wurde. Dieser Parameter ist erforderlich. |
Beispiel
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
Prozedur EXPORT_DATA
Basierend auf dem Parameter format
type
exportiert die Prozedur Dateien in die Cloud oder in ein Verzeichnis als Textdateien im Format CSV, JSON, Parquet oder XML.
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 |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Wenn der Parameter für die Zugangsdaten nicht enthalten ist, gibt er die Ausgabe in ein Verzeichnis an. |
|
Es gibt verschiedene Formen, je nach Wert des Formatparameters und je nachdem, ob Sie einen Berechtigungsnachweisparameter einschließen:
Das Format der URIs ist vom verwendeten Cloud-Objektspeicherservice abhängig. Weitere Einzelheiten finden Sie unter URI-Formate für Cloud-Objektspeicher. |
|
Eine JSON-Zeichenfolge mit Optionen für Exportformate. Die unterstützte Option ist:
|
|
Verwenden Sie diesen Parameter, um eine SELECT warehouse_id, quantity FROM inventories Wenn der Wert Beispiel: SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Exportvorgangs als entsprechende ID in der View |
Verwendungshinweise:
-
Bei dem von Ihnen angegebenen
query
-Parameterwert kann es sich bei Bedarf um eine erweiterte Abfrage handeln, z.B. eine Abfrage, die Joins oder Unterabfragen enthält. -
Je nach angegebenem Formatparameter gibt
DBMS_CLOUD.EXPORT_DATA
die Ergebnisse der angegebenen Abfrage im Cloud-Objektspeicher oder in einem Verzeichnis in den Dateiformaten CSV, JSON, Parquet oder XML aus.Unter Daten mit DBMS_CLOUD.EXPORT_DATA als Text in Objektspeicher exportieren und Daten mit DBMS_CLOUD.EXPORT_DATA in ein Verzeichnis exportieren finden Sie weitere Informationen zur Verwendung von
DBMS_CLOUD.EXPORT_DATA
mit CSV-, JSON-, Parquet- oder XML-Ausgabedateien. -
Bei einer CSV-, JSON- oder XML-Ausgabe ist dies standardmäßig der Fall, wenn eine generierte Datei 10 MB Daten enthält und eine neue Ausgabedatei erstellt wird. Wenn Sie jedoch weniger als 10 MB an Ergebnisdaten haben, sind möglicherweise mehrere Ausgabedateien vorhanden, abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Autonomous Database-Instanz.
Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).
Die standardmäßige Ausgabedatei-Chunk-Größe beträgt 10 MB für CSV, JSON oder XML. Sie können diesen Wert mit dem Parameter
format
und der Optionmaxfilesize
ändern. Weitere Informationen finden Sie unter DBMS_CLOUD-Packageformatoptionen für EXPORT_DATA. -
Bei Parquet-Ausgaben beträgt jede generierte Datei weniger als 128 MB, und es können mehrere Ausgabedateien generiert werden. Wenn Sie jedoch weniger als 128 MB an Ergebnisdaten haben, sind abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Autonomous Database-Instanz möglicherweise mehrere Ausgabedateien vorhanden.
Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).
- Das Parquet-Ausgabeformat kann nur mit High- und Medium-Datenbankservices für Autonomous Databases auf dedizierter Exadata-Infrastruktur verwendet werden.
Hinweise zur Verwendung von DBMS_CLOUD.EXPORT_DATA
mit Ausgabe in ein Verzeichnis
-
Das angegebene Verzeichnis muss vorhanden sein, und Sie müssen als
ADMIN
-Benutzer angemeldet sein oderWRITE
-Zugriff auf das Verzeichnis haben. -
DBMS_CLOUD.EXPORT_DATA
erstellt keine Verzeichnisse. -
Die Prozedur überschreibt keine Dateien. Beispiel: Wenn eine Dumpdatei in der
file_uri_list
vorhanden ist, meldetDBMS_CLOUD.EXPORT_DATA
einen Fehler wie:ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
Beispiele
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
mit dem Formatparameter type
mit dem Wert json
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
mit dem Formatparameter type
mit Wert xml
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
mit dem Formatparameter type
mit Wert csv
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
);
END;
/
Prozedur und Funktion GET_OBJECT
Diese Prozedur ist überladen. Die Prozedurform liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous Database. Die Funktionsform liest ein Objekt aus dem Cloud-Objektspeicher und gibt ein BLOB
an Autonomous Database zurück.
Syntax
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. |
|
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. |
|
Der Name des Verzeichnisses in der Datenbank. Fußnote 1 |
|
Gibt den Namen der zu erstellenden Datei an. Wenn kein Dateiname angegeben wird, wird der Dateiname nach dem letzten Schrägstrich im Parameter |
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. |
|
Gibt die Komprimierung an, mit der das Objekt gespeichert wird. Wenn |
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
Die Funktionsform liest aus dem Objektspeicher, und DBMS_CLOUD.GET_OBJECT
gibt ein BLOB
zurück.
Beispiele
BEGIN
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
So lesen Sie Zeichendaten aus einer Datei im Objektspeicher:
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
So fügen Sie ein im Objektspeicher gespeichertes Bild einem BLOB
in der Datenbank hinzu:
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
In diesem Beispiel ist namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
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 |
---|---|
|
Der Name des Verzeichnisses in der Datenbank. |
Verwendungshinweise
-
Um
DBMS_CLOUD.LIST_FILES
mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen.Beispiel: Führen Sie den folgenden Befehl als ADMIN ausführen, umatpc_user
Leseberechtigungen zu erteilen:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
-
Dies ist eine Pipelinetabellenfunktion mit dem Rückgabetyp
DBMS_CLOUD_TYPES.list_object_ret_t
. -
DBMS_CLOUD.LIST_FILES
ruft den Prüfsummenwert nicht ab und gibtNULL
für dieses Feld zurück.
Beispiel
Dies ist eine Pipelinefunktion, die eine Zeile für jede Datei zurückgibt. Beispiel: Verwenden Sie die folgende Abfrage, um diese Funktion zu verwenden:
SELECT * FROM DBMS_CLOUD.LIST_FILES
('DATA_PUMP_DIR');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- ---------- --------------------- ---------------------
cwallet.sso 2965 2018-12-12T18:10:47Z 2019-11-23T06:36:54Z
Funktion LIST_OBJECTS
Diese Funktion listet Objekte am angegebenen Speicherort im Objektspeicher auf. Die Ergebnisse umfassen die Objektnamen und zusätzliche Metadaten zu den Objekten, wie Größe, Prüfsumme sowie Zeitstempel der Erstellung und der letzten Änderung.
Syntax
DBMS_CLOUD.LIST_OBJECTS
(
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. |
location_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. |
Verwendungshinweise
-
Je nach den Funktionen des Objektspeichers gibt
DBMS_CLOUD.LIST_OBJECTS
keine Werte für bestimmte Attribute zurück. In diesem Fall lautet der Rückgabewert für das FeldNULL
.Alle unterstützten Objektspeicher geben Werte für die Felder
OBJECT_NAME
,BYTES
undCHECKSUM
zurück.Die folgende Tabelle zeigt die Unterstützung für die Felder
CREATED
undLAST_MODIFIED
nach Objektspeicher:Objektspeicher CREATED
LAST_MODIFIED
Oracle Cloud Infrastructure-nativ Gibt Zeitstempel zurück Gibt Zeitstempel zurück Oracle Cloud Infrastructure-Swift Gibt NULL
zurückGibt Zeitstempel zurück Amazon S3 Gibt NULL
zurückGibt Zeitstempel zurück Amazon S3-kompatibel Gibt NULL
zurückGibt Zeitstempel zurück Azure Gibt Zeitstempel zurück Gibt Zeitstempel zurück -
Der Prüfsummenwert ist die MD5-Prüfsumme. Hierbei handelt es sich um eine Hexadezimalzahl mit 32 Zeichen, die auf dem Objektinhalt berechnet wird.
-
Dies ist eine Pipelinetabellenfunktion mit dem Rückgabetyp
DBMS_CLOUD_TYPES.list_object_ret_t
.
Beispiel
Dies ist eine Pipelinefunktion, die eine Zeile für jedes Objekt zurückgibt. Beispiel: Verwenden Sie die folgende Abfrage, um diese Funktion zu verwenden:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS
('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
In diesem Beispiel ist namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Prozedur MOVE_OBJECT
Diese Prozedur verschiebt ein Objekt aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen.
Quell- und Ziel-Bucket oder -Ordner können sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.
Wenn sich Quelle und Ziel in eindeutigen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.
Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname 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 |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Quellobjektspeicher. Wenn Sie keinen |
|
Gibt die URI an, die auf den Object Storage-Quell-Bucket oder den Speicherort des Ordners verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher. |
|
Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien verschoben werden müssen. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort. 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 einer Form kopiert die Prozedur eine Datei aus Autonomous Database in den Cloud-Objektspeicher. In einer anderen Form kopiert die Prozedur ein BLOB
aus Autonomous Database in den Cloud-Objektspeicher.
Syntax
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. |
|
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. |
|
Der Name des Verzeichnisses in der Autonomous Database. Fußnote 1 |
|
Gibt die |
|
Der Name der Datei im angegebenen Verzeichnis. |
|
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 Leseberechtigungen 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 übertragenen Objekts wie folgt begrenzt:
Cloud-Objektspeicherservice | Größenlimit für Objektübertragung |
---|---|
Oracle Cloud Infrastructure Object Storage |
50 GB |
Amazon S3 |
5 GB |
Azure Blob Storage |
256 MB |
Amazon S3-kompatibel |
Wird vom Objektspeicherprovider festgelegt. Weitere Informationen finden Sie in der Dokumentation des Providers. |
Der Oracle Cloud Infrastructure-Objektspeicher lässt das Schreiben von Dateien in einen öffentlichen Bucket ohne Angabe von Zugangsdaten nicht zu (mit Oracle Cloud Infrastructure können Benutzer Objekte aus öffentlichen Buckets herunterladen). Daher müssen Sie einen Zugangsdatennamen mit gültigen Zugangsdaten angeben, um ein Objekt in einem öffentlichen Oracle Cloud Infrastructure-Bucket mit PUT_OBJECT
zu speichern.
Weitere Informationen finden Sie unter URI-Formate für Cloud-Objektspeicher.
Prozedur SYNC_EXTERNAL_PART_TABLE
Diese Prozedur vereinfacht das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud. Führen Sie diese Prozedur aus, wenn neue Partitionen hinzugefügt werden oder wenn Partitionen aus der Objektspeicherquelle für die externe partitionierte Tabelle entfernt werden.
Syntax
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zieltabelle. Die Zieltabelle muss erstellt werden, bevor Sie |
|
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. |
|
Die neuen Dateien können zu einer Änderung des Schemas führen. Die unterstützten Aktualisierungen umfassen: neue Spalten, gelöschte Spalten. Aktualisierungen vorhandener Spalten, z.B. eine Änderung des Datentyps, lösen 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 die externe Tabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Syntax
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View |
|
Wenn definiert, wird nur eine bestimmte Partition validiert. Wenn keine Angabe gemacht wird, werden alle Partitionen sequenziell gelesen, bis |
|
Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, wird aus allen externen Partitionen oder Unterpartitionen sequenziell gelesen, bis |
|
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. |
|
Anzahl der zu scannenden Zeilen. Der Standardwert ist NULL, d.h. alle Zeilen in den Quelldateien werden gescannt. |
|
Nur für interne Verwendung. Verwenden Sie diesen Parameter nicht. |
|
Bestimmt, ob die Validierung gestoppt werden soll, wenn eine Zeile abgelehnt wird. Der Standardwert ist |
Prozedur VALIDATE_EXTERNAL_TABLE
Diese Prozedur validiert die Quelldateien für eine externe Tabelle, generiert Loginformationen und speichert die Zeilen, die den für die externe Tabelle angegebenen Formatoptionen in einer badfile-Tabelle in Autonomous Database nicht entsprechen. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Syntax
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NOCOPY NUMBER,
schema_name IN VARCHAR2 DEFAULT NULL,
rowcount IN NUMBER DEFAULT 0,
stop_on_error IN BOOLEAN DEFAULT TRUE);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View |
|
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. |
|
Anzahl der zu scannenden Zeilen. Der Standardwert ist NULL, d.h. alle Zeilen in den Quelldateien werden gescannt. |
|
Bestimmt, ob die Validierung gestoppt werden soll, wenn eine Zeile abgelehnt wird. Der Standardwert ist Wenn die externe Tabelle auf Avro-, ORC- oder Parquet-Dateien verweist, wird die Validierung bei der ersten abgelehnten Zeile gestoppt. Wenn die externe Tabelle den |
Verwendungshinweise
-
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, bisrowcount
erreicht ist oderstop_on_error
angewendet wird. Sie haben keine Kontrolle darüber, welche Partitionen oder welche Teile einer Partition in welcher Reihenfolge gelesen werden.
Prozedur VALIDATE_HYBRID_PART_TABLE
Diese Prozedur validiert die Quelldateien für eine Hybridpartitionierungstabelle, generiert Loginformationen und speichert die Zeilen, die den für die Hybridtabelle angegebenen Formatoptionen nicht entsprechen, in einer Badfile-Tabelle in Autonomous Database. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Syntax
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View |
|
Wenn definiert, wird nur eine bestimmte Partition validiert. Wenn keine Angabe gemacht wird, wird aus allen externen Partitionen sequenziell gelesen, bis |
|
Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, wird aus allen externen Partitionen oder Unterpartitionen sequenziell gelesen, bis |
|
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. |
|
Anzahl der zu scannenden Zeilen. Der Standardwert ist NULL, d.h. alle Zeilen in den Quelldateien werden gescannt. |
|
Nur für interne Verwendung. Verwenden Sie diesen Parameter nicht. |
|
Bestimmt, ob die Validierung gestoppt werden soll, wenn eine Zeile abgelehnt wird. Der Standardwert ist |