DBMS_CLOUD Unterprogramme und REST-APIs
In diesem Abschnitt werden die DBMS_CLOUD
-Unterprogramme und -REST-APIs beschrieben, die mit Autonomous Database bereitgestellt werden.
Um
DBMS_CLOUD
-Unterprogramme mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer EXECUTE
-Berechtigungen erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user
Berechtigungen zu erteilen:GRANT EXECUTE ON DBMS_CLOUD TO adb_user;
Das Package DBMS_CLOUD
besteht aus:
- DBMS_CLOUD für Zugriffsverwaltung
Die Unterprogramme für die Zugangsdatenverwaltung im Package DBMS_CLOUD, einschließlich Erstellen, Löschen und Aktualisieren von Zugangsdaten. - DBMS_CLOUD für Objekte und Dateien
Die Unterprogramme für die Objekt- und Dateiverwaltung im Package DBMS_CLOUD. - DBMS_CLOUD für Bulk File Management
Die Unterprogramme für Bulkdateivorgänge im Package DBMS_CLOUD. - DBMS_CLOUD-REST-APIs
In diesem Abschnitt werden dieDBMS_CLOUD
-REST-APIs beschrieben, die mit Autonomous Database bereitgestellt werden.
Übergeordnetes Thema: DBMS_CLOUD Package
DBMS_CLOUD für Zugriffsverwaltung
Die Unterprogramme für die Zugangsdatenverwaltung im Package DBMS_CLOUD, einschließlich Erstellen, Löschen und Aktualisieren von Zugangsdaten.
Unterprogramm | Beschreibung |
---|---|
Diese Prozedur speichert Zugangsdaten für Cloud-Services in Autonomous Database. | |
Diese Prozedur entfernt vorhandene Zugangsdaten aus Autonomous Database. | |
Diese Prozedur aktualisiert sofort das Vault Secret eines Vault Secret mit Zugangsdaten, um die neueste Version des Vault Secrets für den angegebenen |
|
Diese Prozedur aktualisiert Zugangsdatenattribute für Cloud-Services in Autonomous Database. |
- Prozedur CREATE_CREDENTIAL
Diese Prozedur speichert Zugangsdaten für Cloud-Services in Autonomous Database. - Prozedur DROP_CREDENTIAL
Diese Prozedur entfernt vorhandene Zugangsdaten aus Autonomous Database. - Prozedur REFRESH_VAULT_CREDENTIAL
Diese Prozedur aktualisiert das Vault Secret der Zugangsdaten eines Vault Secrets. - Prozedur UPDATE_CREDENTIAL
Diese Prozedur aktualisiert ein Attribut mit einem neuen Wert für eine angegebenecredential_name
.
Übergeordnetes Thema: DBMS_CLOUD Unterprogramme und REST-APIs
CREATE_CREDENTIAL-Prozedur
Diese Prozedur speichert Zugangsdaten für Cloud-Services in Autonomous Database.
Verwenden Sie gespeicherte Zugangsdaten für den Zugriff auf den Cloud-Service zum Laden von Daten, zum Abfragen externer Daten in der Cloud oder für andere Fälle, wenn Sie die Prozedur DBMS_CLOUD
mit dem Parameter credential_name
verwenden. Diese Prozedur ist überladen:
-
Verwenden Sie Oracle Cloud Infrastructure-bezogene Parameter wie
user_ocid
,tenancy_ocid
,private_key
undfingerprint
nur, wenn Sie die Authentifizierung mit Oracle Cloud Infrastructure-Signaturschlüsseln verwenden. -
Verwenden Sie den Parameter
params
für eine der folgenden Optionen:-
Amazon-Ressourcennamen-(ARNs-)Zugangsdaten
-
Google Analytics oder Google BigQuery Zugangsdaten
-
Vault-Secret-Zugangsdaten zur Verwendung mit einem unterstützten Vault:
- Oracle Cloud Infrastructure Vault
- Azure Key Vault
- AWS Secrets Manager
- GCP-Secret-Manager
-
Syntax
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL,
comments IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2,
comments IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
params IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der zu speichernden Zugangsdaten. Der Parameter |
|
Mit den Argumenten |
|
Mit den Argumenten |
|
Gibt Kommentartext für die Zugangsdaten an. Dieses Feld kann nützlich sein, um Zugangsdaten zu beschreiben und zu unterscheiden. Die maximale Kommentarlänge beträgt 3800 Zeichen. |
|
Gibt die OCID des Benutzers an. Weitere Einzelheiten zum Abrufen der OCID des Benutzers finden Sie unter Hier erhalten Sie die OCID des Mandanten und des Benutzers. |
|
Gibt die OCID des Mandanten an. Weitere Einzelheiten zum Abrufen der OCID des Mandanten finden Sie unter Hier erhalten Sie die OCID des Mandanten und des Benutzers. |
|
Gibt den generierten Private Key an. Mit einer Passphrase generierte Private Keys werden nicht unterstützt. Sie müssen den Private Key ohne Passphrase generieren. Weitere Einzelheiten zum Generieren eines Schlüsselpaares im PEM-Format finden Sie unter So generieren Sie einen API-Signaturschlüssel. |
|
Gibt einen Fingerprint an. Nachdem ein generierter Public Key in den Account des Benutzers hochgeladen wurde, wird der Fingerprint in der Konsole angezeigt. Verwenden Sie den angezeigten Fingerprint für dieses Argument. Weitere Einzelheiten finden Sie unter So rufen Sie den Fingerprint des Schlüssels ab und So generieren Sie einen API-Signaturschlüssel. |
|
Gibt Zugangsdatenparameter für eine der folgenden Optionen an:
|
Hinweise zur Verwendung
-
Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank.
-
Sie können die Zugangsdaten in Ihrem Schema anzeigen, indem Sie die Tabelle
user_credentials
abfragen. -
Sie können die Zugangsdatenkommentare in Ihrem Schema anzeigen, indem Sie die Tabelle
user_credentials
abfragen. Beispiele:SELECT comments FROM user_credentials WHERE credential_name = 'MY_CRED';
-
Der
ADMIN
-Benutzer kann alle Zugangsdaten anzeigen, indem er die Tabelledba_credentials
abfragt. -
Sie müssen Zugangsdaten nur einmal erstellen, es sei denn, Ihre Zugangsdaten für den Cloud-Service ändern sich. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für
DBMS_CLOUD
-Prozeduren verwenden, für die eincredential_name
-Parameter erforderlich ist. -
Diese Prozedur ist überladen. Wenn Sie eines der schlüsselbasierten Authentifizierungsattribute
user_ocid
,tenancy_ocid
,private_key
oderfingerprint
angeben, wird davon ausgegangen, dass der Aufruf auf einem Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten verwendet. -
Sie können Zugangsdaten in der View
ALL_CREDENTIALS
auflisten. Beispiel: Führen Sie den folgenden Befehl aus, um Zugangsdaten aufzulisten:SELECT credential_name, username, comments FROM all_credentials;
Oracle Cloud Infrastructure-Zugangsdaten (Authentifizierungstoken)
In Oracle Cloud Infrastructure ist username
Ihr Oracle Cloud Infrastructure-Benutzername. password
ist Ihr Oracle Cloud Infrastructure-Authentifizierungstoken. Siehe Mit Authentifizierungstoken arbeiten.
Beispiele:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
Verwenden Sie Authentifizierungstoken-basierte Zugangsdaten, wenn Sie Aufrufe von OCI Object Storage authentifizieren. Verwenden Sie für Aufrufe von anderen Typen von Oracle Cloud Infrastructure-Cloud-Services auf Basis von Oracle Cloud Infrastructure-Signaturschlüsseln.
Bei OCI Object Storage muss der Parameterwert username
die Identitätsdomain und den Benutzernamen aus Ihrem Profil enthalten. Sie finden die mit einem Benutzer verknüpfte Identitätsdomain in der Oracle Cloud Infrastructure-Konsole.
Beispiele:
oracleidentitycloudservice/adb_user@example.com
Bei der Standardidentitätsdomain müssen Sie den Domainnamen Default
nicht einschließen. Beispiele:
adb_user@example.com
Auf Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten
Mit der Oracle Cloud Infrastructure-Signaturschlüsselauthentifizierung können Sie die folgenden Parameter verwenden: user_ocid
, tenancy_ocid
, private_key
und fingerprint
.
Beispiele:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Mit einer Passphrase generierte Private Keys werden nicht unterstützt. Sie müssen den Private Key ohne Passphrase generieren. Weitere Informationen finden Sie unter So generieren Sie einen API-Signaturschlüssel.
Oracle Cloud Infrastructure Object Storage Classic-Zugangsdaten
Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage Classic befinden, ist username
Ihr Oracle Cloud Infrastructure Classic-Benutzername und password
Ihr Oracle Cloud Infrastructure Classic-Kennwort.
Zugangsdaten für Amazon Web Services (AWS)
Wenn sich Ihre Quelldateien in Amazon S3 befinden oder Sie eine AWS-API aufrufen, ist username
die AWS-Zugriffsschlüssel-ID und password
der AWS-Secret-Zugriffsschlüssel. Siehe AWS Identity and Access Management.
Microsoft Azure-Zugangsdaten
Wenn sich Ihre Quelldateien in Azure Blob Storage oder Azure Data Lake Storage befinden oder Sie eine Azure-API aufrufen, ist username
der Name Ihres Azure-Speicheraccounts und password
ein Zugriffsschlüssel für den Azure-Speicheraccount. Siehe Azure-Speicheraccounts.
Amazon S3-kompatible Zugangsdaten
Dienst | Zugangsdateninformationen |
---|---|
Oracle Cloud Infrastructure (Kunden-Secret Keys) |
Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure befinden, müssen Sie Kunden-Secret Keys mit S3-kompatiblen URLs verwenden. Weitere Informationen finden Sie unter Mit Kunden-Secret Keys arbeiten. |
Google Cloud Storage |
Wenn sich Ihre Quelldateien in Google Cloud Storage befinden oder Sie Google Cloud Storage-APIs aufrufen, müssen Sie ein Google-Standardprojekt festlegen und einen HMAC-Schlüssel abrufen, um Zugangsdaten für die Angabe mit S3-kompatiblen Google Cloud Storage-URLs zu erstellen. Verwenden Sie die HMAC-Schlüssel-ID als Benutzernamen und das HMAC-Secret als Kennwort. Weitere Informationen finden Sie unter Projekte und HMAC-Schlüssel. |
Wasabi Hot Cloud Storage |
Wenn sich Ihre Quelldateien in Wasabi Hot Cloud Storage befinden oder Sie Wasabi Hot Cloud Storage-APIs aufrufen, müssen Sie Zugriffsschlüssel erstellen, um Zugangsdaten für die Angabe mit S3-kompatiblen URLs zu erstellen. Verwenden Sie den Wasabi Hot Cloud Storage-Zugriffsschlüssel als Benutzernamen und den Wasabi Hot Cloud Storage-Secret Key als Kennwort. Weitere Informationen finden Sie unter Wasabi-API-Zugriffsschlüsselset erstellen. |
AWS-Amazon-Ressourcennamen-(ARN-)Zugangsdaten
Wenn sich Ihre Quelldateien in Amazon S3 befinden oder Sie eine AWS-API aufrufen, verwenden Sie params
, um die Parameter für die Amazon-Ressourcennamen (ARN) anzugeben.
Parameter | Value |
---|---|
aws_role_arn |
Gibt den Amazon-Ressourcennamen an, der die AWS-Rolle identifiziert. Wenn dieser Parameter beim Erstellen der Zugangsdaten nicht angegeben wird, wird |
external_id_type |
Legen Sie optional Wenn dieser Parameter beim Erstellen der Zugangsdaten nicht angegeben wird, lautet der Standardwert |
Beispiele:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'MY_CRED',
params => JSON_OBJECT(
'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
'external_id_type' value 'database_ocid'));
END;
/
GitHub Persönliches Zugriffstoken
Wenn sich Ihre Quelldateien in einem GitHub-Repository befinden oder Sie eine GitHub-API aufrufen, ist username
Ihre E-Mail-Adresse GitHub, und password
ist Ihr persönliches GitHub-Zugriffstoken. Weitere Informationen finden Sie unter Creating a personal Access Token.
Beispiele:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'MY_GITHUB_CRED',
username => 'user@example.com',
password => 'your_personal_access_token' );
END;
/
Google Analytics oder Google BigQuery Zugangsdaten
Wenn Sie auf Google Analytics oder Google BigQuery zugreifen, geben Sie mit dem Parameter params
die Google OAuth 2.0-Zugangsdatenparameter an.
Parameter | Value |
---|---|
gcp_oauth2 |
Gibt den OAuth 2.0-Zugriff für Google Analytics oder Google BigQuery mit einem JSON-Objekt an, das die folgenden Parameter und deren Werte enthält:
Weitere Informationen zu den Zugangsdaten von Google OAuth finden Sie unter Google-APIs mit OAuth 2.0 aufrufen. |
Beispiele:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'GOOGLE_BIGQUERY_CRED',
params => JSON_OBJECT('gcp_oauth2' value
JSON_OBJECT(
'client_id' value 'client_id',
'client_secret' value 'client_secret',
'refresh_token' value 'refresh_token' )));
END;
/
Vault-Secret-Zugangsdaten mit Oracle Cloud Infrastructure Vault
Um Vault-Secret-Zugangsdaten mit Oracle Cloud Infrastructure Vault zu erstellen, geben Sie mit dem Parameter params
die erforderlichen Parameter an:
-
username
: Gibt den Benutzernamen eines beliebigen Typs von Zugangsdaten für Benutzername/Kennwort an, wie den Benutzernamen des OCI Swift-Kennworts. Beispiel: Wenn Sie Swift-Zugangsdaten mit dem Benutzernamen "scott" und dem Kennwort "password" haben, geben Sie "scott" als Parameterusername
an. -
secret_id
: Ist die Vault-Secret-ID. Geben Sie den Wertsecret_id
als Vault Secret-OCID an. Weitere Informationen finden Sie unter Überblick über Vault. -
region
: Ist ein optionaler Parameter, der die Cloud-Regions-ID "oracle" angibt. Wenn die Region angegeben ist, gibt sie den Speicherort an, in dem sich das Oracle Cloud Infrastructure Vault-Secret befindet.Standardmäßig verwendet
CREATE_CREDENTIAL
denregion
, der aus dem Regionsschlüssel in dersecret_id
zugeordnet ist. Ein Beispiel für eine Region istus-ashburn-1
.Eine vollständige Liste der Regionen finden Sie unter Regionen und Availability-Domains.
Beispiele:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'OCI_SECRET_CRED',
params => JSON_OBJECT(
'username' value 'scott',
'region' value 'us-ashburn-1',
'secret_id' value 'ocid1.vaultsecret.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa'));
END;
/
Hinweise zur Verwendung eines Oracle Cloud Infrastructure Vault-Secrets zum Speichern von Vault Secrets:
- Wenn Sie einen Oracle Cloud Infrastructure Vault verwenden, müssen Sie auf der Autonomous Database-Instanz die Principal-Authentifizierung mit
DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL
aktivieren. -
In Oracle Cloud Infrastructure müssen Sie eine Policy für den Resource Principal angeben, um auf das Secret zuzugreifen.
Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE
für das Package DBMS_CLOUD
.
Vault-Secret-Zugangsdaten mit Azure Key Vault
Um Azure Key Vault-Zugangsdaten zu erstellen, geben Sie mit dem Parameter params
die erforderlichen Parameter an:
-
username
: Gibt den mit dem Schlüssel verknüpften Benutzernamen an. -
secret_id
: Gibt den Secret-Namen an. -
azure_vault_name
: Gibt den Namen des Vaults an, in dem sich das Secret befindet.
Weitere Informationen finden Sie unter Schlüssel-Vault erstellen.
Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE
für das Package DBMS_CLOUD
.
Vault Secret-Zugangsdaten mit AWS Secrets Manager
Um Vault Secret-Zugangsdaten mit AWS Secrets Manager zu erstellen, geben Sie mit dem Parameter params
die erforderlichen Parameter an:
-
username
: Gibt den AWS Secrets Manager-Zugriffsschlüssel an. -
secret_id
: Ist der AWS Secrets Manager AWS ARN. -
region
: (Optional) Gibt die AWS-Serviceregion an, in der sich der Vault und das Secret befinden. Ein Beispiel für die AWS-Region ist "us-east-2". Die Standardregionregion
ist die Region, die mit dem ARN im Parametersecret_id
angegeben wird.Weitere Informationen finden Sie unter AWS-Regionen verwalten.
Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung
EXECUTE
für das PackageDBMS_CLOUD
.
Vault-Secret-Zugangsdaten mit GCP Secret Manager
Um GCP Secret Manager-Zugangsdaten zu erstellen, geben Sie mit dem Parameter params
die erforderlichen Parameter an:
-
username
: Gibt den mit dem Secret verknüpften Benutzernamen an. -
secret_id
: Ist der Secret-Name. -
gcp_project_id
: Gibt die ID des Projekts an, in dem sich das Secret befindet.
Weitere Informationen finden Sie unter Secret Manager.
Um Vault Secret-Zugangsdaten zu erstellen, benötigen Sie die Berechtigung EXECUTE
für das Package DBMS_CLOUD
.
Übergeordnetes Thema: DBMS_CLOUD für Zugriffsverwaltung
Prozedur DROP_CREDENTIAL
Diese Prozedur entfernt vorhandene Zugangsdaten aus Autonomous Database.
Syntax
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der zu entfernenden Zugangsdaten. |
Übergeordnetes Thema: DBMS_CLOUD für Zugriffsverwaltung
Prozedur REFRESH_VAULT_CREDENTIAL
Mit dieser Prozedur wird das Vault Secret von Vault Secret-Zugangsdaten aktualisiert.
Mit dieser Prozedur können Sie das Vault Secret einer Vault Secret-Zugangsdaten sofort aktualisieren, um die neueste Version des Vault Secrets für die angegebene credential_name
abzurufen.
Syntax
DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL
(
credential_name IN VARCHAR2);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der zu aktualisierenden Zugangsdaten. |
Hinweise zur Verwendung
-
Der
ADMIN
-Benutzer kann alle Zugangsdaten anzeigen, indem er die Tabelledba_credentials
abfragt. -
Sie können Zugangsdaten in der View
ALL_CREDENTIALS
auflisten. Beispiel: Führen Sie den folgenden Befehl aus, um Zugangsdaten aufzulisten:SELECT credential_name, username, comments FROM all_credentials;
Beispiel
BEGIN
DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL
(
credential_name => 'AZURE_SECRET_CRED');
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Zugriffsverwaltung
Prozedur UPDATE_CREDENTIAL
Diese Prozedur aktualisiert ein Attribut mit einem neuen Wert für einen angegebenen credential_name
.
Verwenden Sie gespeicherte Zugangsdaten zum Laden von Daten, zum Abfragen externer Daten in der Cloud oder überall, wo Sie DBMS_CLOUD
-Prozeduren mit einem credential_name
-Parameter verwenden.
Syntax
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der zu aktualisierenden Zugangsdaten. |
|
Name des zu aktualisierenden Attributs. Für Zugangsdaten vom Typ "Benutzername/Kennwort" sind die gültigen Für Zugangsdaten für einen Amazon-ARN sind die gültigen Für Zugangsdaten für Google BigQuery oder Google Analytics sind die gültigen Je nach verwendetem Vault lauten die gültigen
attribute -Werte für Vault Secret-Zugangsdaten:
Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL. |
|
Neuer Wert für das angegebene Attribut. |
Hinweise zur Verwendung
-
Beim Wert für den Benutzernamen muss die Groß- und Kleinschreibung berücksichtigt werden. Er darf keine doppelten Anführungszeichen oder Leerzeichen enthalten.
-
Der
ADMIN
-Benutzer kann alle Zugangsdaten anzeigen, indem erdba_credentials
abfragt. -
Sie müssen Zugangsdaten nur einmal erstellen, es sei denn, Ihre Zugangsdaten für den Cloud-Service ändern sich. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für
DBMS_CLOUD
-Prozeduren verwenden, für die eincredential_name
-Parameter erforderlich ist. -
Sie können Zugangsdaten in der View
ALL_CREDENTIALS
auflisten. Beispiel: Führen Sie den folgenden Befehl aus, um Zugangsdaten aufzulisten:SELECT credential_name, username, comments FROM all_credentials;
Beispiele
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Zugriffsverwaltung
DBMS_CLOUD 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 Cloud Object Storage 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 die Cloud oder aus ORC-, Parquet- oder Avro-Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.
Ähnlich wie Textdateien werden die Daten aus der ORC-, Parquet- oder Avro-Quelldatei in die vorhandene interne Tabelle kopiert. |
|
Mit dieser Prozedur werden Dateien aus einem Cloud-Objektspeicher-Bucket in einen anderen kopiert. | |
Diese Prozedur erstellt eine externe Tabelle für Dateien in der Cloud oder für Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen. | |
Prozedur CREATE_CLOUD_TABLE |
Mit dieser Prozedur wird eine Cloud-Tabelle erstellt, in der alle persistenten Daten im von Oracle verwalteten Objektspeicher gespeichert werden. |
CREATE_EXTERNAL_TABLE Prozedur für Apache Iceberg |
Mit dieser Prozedur werden externe Tabellen für Apache Iceberg-Tabellen in den unterstützten Konfigurationen erstellt. |
CREATE_EXTERNAL_TABLE Prozedur für Avro-, ORC- oder Parquet-Dateien |
Diese Prozedur mit dem format -Parameter type , der auf den Wert parquet , orc oder avro gesetzt ist, erstellt eine externe Tabelle mit Parquet-, ORC- oder Avro-Formatdateien in der Cloud oder in einem Verzeichnis.
So können Sie Abfragen für externe Daten aus Autonomous Database ausführen. |
Diese Prozedur erstellt eine externe partitionierte Tabelle für Dateien in der Cloud. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen. | |
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 angegebenem format -Parameter der Option type exportiert die Prozedur Zeilen als Text mit den Optionen CSV, JSON, Parquet oder XML in den Cloud-Objektspeicher oder schreibt Daten mit dem Zugriffstreiber ORACLE_DATAPUMP in eine Dumpdatei. |
|
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. | |
Mit dieser Prozedur wird ein Objekt von einem Cloud-Objektspeicher-Bucket in einen anderen verschoben. | |
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. |
- COPY_COLLECTION-Prozedur
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 Parameteroperation_id
verwenden. - COPY_DATA-Prozedur
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 Parameteroperation_id
verwenden. - COPY_DATA Prozedur für Avro-, ORC- oder Parquet-Dateien
Bei dieser Prozedur wird der Parameterformat
type
auf den Wertavro
,orc
oderparquet
gesetzt, um Daten aus Avro-, ORC- oder Parquet-Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen zu laden. - Prozedur COPY_OBJECT
Diese Prozedur kopiert ein Objekt aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen. - CREATE_CLOUD_TABLE-Prozedur
Diese Prozedur erstellt eine Cloud-Tabelle. Alle Cloud-Tabellendaten werden in von Oracle verwaltetem Object Storage gespeichert (Cloud-Tabellen speichern nur ihre Metadaten in der Datenbank). - CREATE_EXTERNAL_PART_TABLE-Prozedur
Diese Prozedur erstellt eine externe partitionierte 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. - CREATE_EXTERNAL_TABLE-Prozedur
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. - Prozedur CREATE_EXTERNAL_TABLE für Apache Iceberg
Diese Prozedur erstellt externe Tabellen für Apache Iceberg-Tabellen in den unterstützten Konfigurationen. - CREATE_EXTERNAL_TABLE-Prozedur für Avro-, ORC- oder Parquet-Dateien
Diese Prozedur mit demformat
-Parametertype
, der auf den Wertavro
,orc
oderparquet
gesetzt ist, erstellt eine externe Tabelle mit Dateien im Avro-, ORC- oder Parquet-Format in der Cloud oder in einem Verzeichnis. - Prozedur CREATE_EXTERNAL_TEXT_INDEX
Diese Prozedur erstellt einen Textindex für Object Storage-Dateien. - Prozedur CREATE_HYBRID_PART_TABLE
Diese Prozedur erstellt eine hybride 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. - Prozedur DELETE_ALL_OPERATIONS
Diese Prozedur löscht entweder alle in der Tabelleuser_load_operations
in Ihrem Schema protokollierten Dataload-Vorgänge oder alle Dataload-Vorgänge des angegebenen Typs, wie mit dem Parametertype
angegeben. - Prozedur DELETE_FILE
Diese Prozedur entfernt die angegebene Datei aus dem angegebenen Verzeichnis in Autonomous Database. - Prozedur DELETE_OBJECT
Diese Prozedur löscht das angegebene Objekt im Objektspeicher. - Prozedur DELETE_OPERATION
Diese Prozedur löscht die Dataload-Einträge für die angegebene Vorgangs-ID, die in den Tabellenuser_load_operations
oderdba_load_operations
in Ihrem Schema protokolliert wurde. - Prozedur DROP_EXTERNAL_TEXT_INDEX
Diese Prozedur löscht den Textindex für die Object Storage-Dateien. - Prozedur EXPORT_DATA
Diese Prozedur exportiert Daten aus Autonomous Database basierend auf dem Ergebnis einer Abfrage. Diese Prozedur ist überladen und unterstützt das Schreiben von Dateien in die Cloud oder in ein Verzeichnis. - GET_OBJECT Prozedur und Funktion
Diese Prozedur ist überladen. Die Prozedurform liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous Database. Die Funktionsform liest ein Objekt aus dem Cloud-Objektspeicher und gibt einBLOB
an Autonomous Database 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. - Prozedur MOVE_OBJECT
Diese Prozedur verschiebt ein Objekt von einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen. - PUT_OBJECT Prozedur
Diese Prozedur ist überladen. In einer Form kopiert die Prozedur eine Datei aus Autonomous Database in den Cloud-Objektspeicher. In einer anderen Form kopiert die Prozedur einBLOB
aus Autonomous Database in den Cloud-Objektspeicher. - Prozedur SYNC_EXTERNAL_PART_TABLE
Diese Prozedur vereinfacht das Aktualisieren einer externen partitionierten Tabelle aus Dateien in der Cloud. Führen Sie diese Prozedur aus, wenn neue Partitionen hinzugefügt werden oder wenn Partitionen aus der Objektspeicherquelle für die externe partitionierte Tabelle entfernt werden. - VALIDATE_EXTERNAL_PART_TABLE-Prozedur
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 Parameteroperation_id
verwenden. - 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 Parameteroperation_id
verwenden. - VALIDATE_HYBRID_PART_TABLE-Prozedur
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 Parameteroperation_id
verwenden.
Übergeordnetes Thema: DBMS_CLOUD Unterprogramme und REST-APIs
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. Sie können 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 Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiele:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. 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 DBMS_CLOUD-Paketformatoptionen. |
|
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;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. Sie können Dieser Parameter wird nicht verwendet, wenn Sie eine Verzeichnis- oder Tabellen-Hyperlink-URL mit |
|
Dieser Parameter gibt einen der folgenden Werte an:
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 Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiele:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. Weitere Informationen zur Bedingung URL Tabellen-Hyperlink Sie haben folgende Möglichkeiten, einen Tabellen-Hyperlink zu verwenden:
Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. 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 die Zieltabellendefinition bestimmt. Die Syntax dieses Arguments entspricht der Wenn der Wert der 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 DBMS_CLOUD Packageformatoptionen. Informationen zu den Dateiformaten Avro, ORC oder Parquet finden Sie unter DBMS_CLOUD Package Format Options for Avro, ORC, or 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 Standardbegrenzungszeichen für Datensätze ist detected newline
. Mit detected newline
versucht DBMS_CLOUD
automatisch, das richtige Newline-Zeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll. DBMS_CLOUD
sucht zuerst nach dem Windows-Zeilenvorschubzeichen \r\n
. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn kein Windows-Newline-Zeichen gefunden wird, sucht DBMS_CLOUD
nach dem UNIX/Linux-Newline-Zeichen \n
. Wird dieses gefunden, wird \n
für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported
" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatztrennzeichen verwenden, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatztrennzeichen verwenden.
Weitere Informationen zur Formatoption recorddelmiter
finden Sie unter DBMS_CLOUD Packageformatoptionen.
Beispiele
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur COPY_DATA für Avro-, ORC- oder Parkettdateien
format
type
auf den Wert avro
, orc
oder parquet
gesetzt ist, lädt Daten aus Avro-, ORC- oder Parquet-Dateien in der Cloud oder aus Dateien in einem Verzeichnis in vorhandene Autonomous Database-Tabellen.
Ähnlich wie Textdateien werden die Daten aus der Avro-, ORC- oder Parquet-Quelldatei in die vorhandene interne Tabelle kopiert.
Syntax
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2 DEFAULT,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
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. Sie können 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 Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiele:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. 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 Parkettdateien ignoriert. Die Felder in der Quelle entsprechen den Spalten der externen Tabelle nach Namen. Quelldatentypen werden in den Datentyp der Spalte der externen Tabelle konvertiert. Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD Package ORC to Oracle Data Type Mapping. Bei Parquet-Dateien finden Sie weitere Informationen zur Zuordnung unter DBMS_CLOUD Package Parquet to Oracle Data Type Mapping. Informationen zur Zuordnung bei Avrodateien finden Sie unter DBMS_CLOUD Datentypzuordnung von Avro zu Oracle-Package. |
|
Die Optionen, die das Format der Quelldateien beschreiben. Für Avro-, ORC- oder Parquet-Dateien werden nur zwei Optionen unterstützt: siehe DBMS_CLOUD Packageformatoptionen für Avro, ORC oder Parquet. |
Hinweise zur Verwendung
-
Wie bei anderen Datendateien generieren Dataloads von Avro, ORC und Parquet Logs, die in den Tabellen
dba_load_operations
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. Beispiel: Die Zielspalte ist nicht groß genug, um den konvertierten Wert aufzunehmen, wird der Wert für die Spalte auf
NULL
gesetzt. Dadurch wird kein abgelehnter Datensatz erstellt.
-
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur COPY_OBJECT
Mit dieser Prozedur wird ein Objekt aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen kopiert.
Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.
Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.
Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname für das Ziel angegeben ist.
Syntax
DBMS_CLOUD.COPY_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Quell-Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Gibt die URI für den Zielobjektspeicher an. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort. Sie können 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;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur CREATE_CLOUD_TABLE
Diese Prozedur erstellt eine Cloud-Tabelle. Alle Cloud-Tabellendaten werden in von Oracle verwaltetem Object Storage gespeichert (Cloud-Tabellen speichern nur ihre Metadaten in der Datenbank).
Syntax
DBMS_CLOUD.CREATE_CLOUD_TABLE
(
table_name IN VARCHAR2,
column_list IN CLOB,
params IN CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Cloud-Tabelle. |
|
Durch Komma getrennte Liste der Spaltennamen und Datentypen für die Cloud-Tabelle. |
Hinweise zur Verwendung
-
DEFAULT
-Attribute: Diecolumn_list
kann dieDEFAULT
-Klausel enthalten, die wie dieDEFAULT
-Klausel in einer normalenCREATE TABLE
funktioniert. Informationen zum Verhalten derDEFAULT
-Klausel finden Sie unter CREATE TABLE. -
Verwenden Sie
DROP TABLE
, um eine Cloud-Tabelle zu löschen. Cloud-Tabellen unterstützen den Papierkorb nicht.Beispiele:
DROP TABLE CLOUD_TAB1;
-
Sie können die Berechtigungen
SELECT
,INSERT
undUPDATE
für eine Cloud-Tabelle erteilen. Eine Cloud-Tabelle kann keine weiteren Berechtigungen erhalten.Weitere Informationen finden Sie unter Berechtigung und Rollenautorisierung konfigurieren.
Beispiele
EXEC DBMS_CLOUD.CREATE_CLOUD_TABLE
( 'CLOUD_TAB1', 'I INTEGER, J INTEGER' );
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE
(
table_name => 'CLOUD_TABLE_WITH_DEFAULT',
column_list => 'I INTEGER,
A VARCHAR2(32) DEFAULT ''ABC''' );
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. Sie können |
|
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 Reguläre 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 für eine Datei im Object Storage erstellt werden. Beispiele:
Wenn Sie den Parameter Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. Weitere Informationen zur Bedingung |
|
Durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. Für diesen Parameter gelten je nach Typ der Datendateien, die mit dem Parameter
|
|
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 angegebenen Informationen zu allen |
Hinweise zur Verwendung
-
Sie können diese Prozedur nicht mit beiden Parametern
partitioning_clause
undfile_uri_list
aufrufen. -
Die Angabe des Parameters
column_list
ist bei strukturierten Datendateien, einschließlich Avro-, Parquet- oder ORC-Daten, 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ützten Cloud-Object Storage-Services, darunter:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage oder Azure Data Lake Storage
-
Amazon S3
-
Amazon S3-Kompatible, darunter: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage und Wasabi Hot Cloud Storage.
-
GitHub-Repository
Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.
-
-
Die Prozedur
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
unterstützt externe partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem. -
Wenn Sie
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
mit dem 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 Standardbegrenzungszeichen für Datensätze ist
detected newline
. Mitdetected newline
versuchtDBMS_CLOUD
automatisch, das richtige Newline-Zeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll.DBMS_CLOUD
sucht zuerst nach dem Windows-Zeilenvorschubzeichen\r\n
. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn kein Windows-Newline-Zeichen gefunden wird, suchtDBMS_CLOUD
nach dem UNIX/Linux-Newline-Zeichen\n
. Wird dieses gefunden, wird\n
für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported
" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatztrennzeichen verwenden, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatztrennzeichen verwenden.Weitere Informationen zur Formatoption
recorddelmiter
finden Sie unter DBMS_CLOUD Packageformatoptionen. -
Die externen partitionierten Tabellen, die Sie mit
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
erstellen, enthalten zwei unsichtbare Spalten:file$path
undfile$name
. Anhand dieser Spalten können Sie ermitteln, aus welcher Datei ein Datensatz stammt.-
file$path
: Gibt den Dateipfadtext am Anfang des Objektnamens an. -
file$name
: Gibt den Objektnamen an, einschließlich dem gesamten Text, der auf den Bucket-Namen folgt.
-
Beispiele
Beispiel für die Verwendung des Parameters partitioning_clause
:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
Beispiel für die Verwendung der Parameter file_uri_list
und column_list
mit unstrukturierten Dateien:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv',
column_list => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)',
field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
format => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/
Beispiel für die Verwendung von file_uri_list
ohne Parameter column_list
mit strukturierten Datendateien:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur CREATE_EXTERNAL_TABLE
Diese Prozedur erstellt eine externe Tabelle für Dateien in der Cloud oder aus Dateien in einem Verzeichnis. So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können Dieser Parameter wird nicht verwendet, wenn Sie ein Verzeichnis oder eine Tabellen-Hyperlink-URL mit |
|
Dieser Parameter gibt einen der folgenden Werte 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 Reguläre 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 für eine Datei im Object Storage erstellt werden. Beispiele:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. Weitere Informationen zur Bedingung URL Tabellen-Hyperlink Mit einer Tabellen-Hyperlink-URL können Sie eine externe Tabelle wie folgt erstellen:
Verzeichnis
Hinweis Weitere Informationen finden Sie unter Informationen zu Tabellenhyperlinks in Autonomous Database und Prozedur GET_PREAUTHENTICATED_URL.
Tabellen-Hyperlink-URLs unterstützen keine Platzhalter. Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. 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 DBMS_CLOUD Packageformatoptionen. Informationen zu Dateien im Avro-, ORC- oder Parquet-Format finden Sie unter Prozedur CREATE_EXTERNAL_TABLE für Avro-, ORC- oder Parquet-Dateien. |
Hinweise zur Verwendung
-
Die Prozedur
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
unterstützt externe partitionierte Dateien in den unterstützten Cloud-Objektspeicherquellen, einschließlich:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage oder Azure Data Lake Storage
-
Amazon S3
-
Amazon S3-Kompatible, darunter: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage und Wasabi Hot Cloud Storage.
-
GitHub-Repository
-
Oracle Cloud Infrastructure Object Storage mit Tabellen-Hyperlink-URLs
Die Zugangsdaten stellen eine Eigenschaft auf Tabellenebene dar. Daher müssen sich die externen Dateien in demselben Objektspeicher befinden.
Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.
-
-
Das Standardbegrenzungszeichen für Datensätze ist
detected newline
. Mitdetected newline
versuchtDBMS_CLOUD
automatisch, das richtige Newline-Zeichen zu finden, das als Datensatzbegrenzungszeichen verwendet werden soll.DBMS_CLOUD
sucht zuerst nach dem Windows-Zeilenvorschubzeichen\r\n
. Wird das Windows-Zeilenvorschubzeichen gefunden, wird es für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn kein Windows-Newline-Zeichen gefunden wird, suchtDBMS_CLOUD
nach dem UNIX/Linux-Newline-Zeichen\n
. Wird dieses gefunden, wird\n
für alle Dateien in der Prozedur als Datensatzbegrenzung verwendet. Wenn die Quelldateien eine Kombination aus verschiedenen Datensatztrennzeichen verwenden, kann ein Fehler wie "KUP-04020: found record longer than buffer size supported
" auftreten. In diesem Fall müssen Sie entweder die Quelldateien so ändern, dass sie dasselbe Datensatztrennzeichen verwenden, oder Sie dürfen nur die Quelldateien angeben, die dasselbe Datensatztrennzeichen verwenden.Informationen zur Formatoption
recorddelimiter
finden Sie unter DBMS_CLOUD Package Format Options.
Beispiel
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
CREATE_EXTERNAL_TABLE Prozedur für Apache Iceberg
Mit dieser Prozedur werden externe Tabellen für Apache Iceberg-Tabellen in den unterstützten Konfigurationen erstellt.
Eine Beschreibung der unterstützten Konfigurationen finden Sie unter Info zum Abfragen von Apache Iceberg-Tabellen.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Der Name der Zugangsdaten für den Zugriff auf die Datendateien, die Metadatendateien und den Iceberg-Katalog (falls verwendet). Bei AWS- und OCI-Konfigurationen müssen die Zugangsdaten wie in der Prozedur CREATE_CREDENTIAL beschrieben erstellt werden. Zugangsdaten für AWS-Amazon-Ressourcennamen (ARN) werden derzeit nicht unterstützt. |
|
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.
|
|
Muss NULL sein, da die Spaltennamen und -typen automatisch aus Iceberg-Metadaten abgeleitet werden. Die Spaltennamen entsprechen den Namen in den zugrunde liegenden Datendateien (Parquet, Avro, ORC). Die Oracle-Datentypen werden mit den Parquet/Avro/ORC-Mappings zwischen Iceberg und den Datentypen Parquet, Avro und ORC abgeleitet. Daher können Benutzer die |
|
Muss NULL sein, da Spaltennamen und Datentypen automatisch aus den Iceberg-Metadaten abgeleitet werden. |
|
Der Parameter Beispiele und weitere Informationen finden Sie in den folgenden Beispielen: Iceberg-Unterstützung bei OCI Data Flow-Beispielen, DBMS_CLOUD URI-Formate. |
Beispiel für AWS Iceberg-Tabellen mit AWS Glue Catalog
Der Parameter format
beim Erstellen von Tabellen über eine AWS Iceberg-Tabelle mit einem AWS Glue Catalog lautet wie folgt:
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
ein JSON-Objekt mit zwei Elementen wie folgt:
protocol_type
: Muss "Eisberg" seinprotocol_config
: Ein verschachteltes JSON-Objekt, das die Iceberg-Katalogdetails angibt.iceberg_catalog_type
: Muss'aws_glue'
sein.iceberg_glue_region
: Die Katalogregion, z.B.'us-west-1'
iceberg_table_path
: Einglue database.glue table name
-Pfad.
Beispiel für eine AWS Iceberg-Tabelle mit einem Metadaten-Datei-URI
format
beim Erstellen von Tabellen über eine AWS Iceberg-Tabelle mit einem Metadaten-Datei-URI lautet wie folgt:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
Beispiel für eine OCI Iceberg-Tabelle mit dem Katalog HadoopCatalog
format
beim Erstellen von Tabellen über eine OCI Iceberg-Tabelle, die von OCI Data Flow mit dem HadoopCatalog-Katalog erstellt wurde, lautet wie folgt:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
ein JSON-Objekt mit zwei Elementen wie folgt:
protocol_type
: Muss'iceberg'
sein.protocol_config
: Ein verschachteltes JSON-Objekt, das die Iceberg-Katalogdetails angibt.iceberg_catalog_type
: Muss'hadoop'
sein.iceberg_warehouse
: Der Warehouse-Verzeichnispfad, der beim Generieren der Tabelle im nativen URI-Format verwendet wird.iceberg_table_path
: Der Pfaddatabase_name.table name
, der beim Erstellen der Tabelle verwendet wird.
Beispiel für eine OCI Iceberg-Tabelle mit der URI der Metadatendatei
format
beim Erstellen von Tabellen über eine OCI Iceberg-Tabelle mit der URI der Metadatendatei lautet wie folgt:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
ein JSON-Objekt mit einem Element wie folgt:
protocol_type
: Muss'iceberg'
sein.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur CREATE_EXTERNAL_TABLE für Avro-, ORC- oder Parkettdateien
format
-Parameter type
, der auf den Wert avro
, orc
oder parquet
gesetzt ist, erstellt eine externe Tabelle mit Dateien im Avro-, ORC- oder Parquet-Format in der Cloud oder in einem Verzeichnis.
So können Sie Abfragen für externe Daten aus Autonomous Database ausführen.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der externen Tabelle |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können 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 Reguläre 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 für eine Datei im Object Storage erstellt werden. Beispiele:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. Weitere Informationen zur Bedingung Verzeichnis Sie können ein Verzeichnis und einen oder mehrere Dateinamen angeben oder eine kommagetrennte Liste von Verzeichnissen und Dateinamen verwenden. Das Format zur Angabe eines Verzeichnisses lautet: Reguläre Ausdrücke werden bei der Angabe der Dateinamen in einem Verzeichnis nicht unterstützt. Sie können nur Platzhalter verwenden, um Dateinamen in einem Verzeichnis anzugeben. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen und das Zeichen "?" als Platzhalter für ein Einzelzeichen verwendet werden. Beispiel: Um mehrere Verzeichnisse anzugeben, verwenden Sie eine durch Komma getrennte Liste von Verzeichnissen. 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 Parquet to Oracle Data Type Mapping. Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD Package ORC to Oracle Data Type Mapping. Informationen zu Avro-Dateien finden Sie unter DBMS_CLOUD Package Avro to Oracle Data Type Mapping. |
|
Wird für Avro-, ORC- oder Parkettdateien ignoriert. Die Felder in der Quelle entsprechen den Spalten der externen Tabelle nach Namen. Quelldatentypen werden in den Datentyp der Spalte der externen Tabelle konvertiert. Informationen zu ORC-Dateien finden Sie unter DBMS_CLOUD-Package - Datentypzuordnung von ORC zu Oracle Informationen zu Parquet-Dateien finden Sie unter DBMS_CLOUD Package Parquet to Oracle Data Type Mapping. Informationen zu Avro-Dateien finden Sie unter DBMS_CLOUD Package Avro to Oracle Data Type Mapping. |
|
Weitere Informationen zu Avro-, ORC- oder Parquet- |
Beispiele: ORC
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
Beispiele: Avro
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
Beispiele: Parquet
format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')
Zuordnung von Avro-, ORC- oder Parquet-Spaltennamen zu Oracle-Spaltennamen
Unter DBMS_CLOUD Spaltennamenszuordnung von Avro, ORC und Parquet zu Oracle finden Sie Informationen zur Zuordnung von Spaltennamen und zur Verwendung der Konvertierung von Spaltennamen in Oracle SQL.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur CREATE_EXTERNAL_TEXT_INDEX
Diese Prozedur erstellt einen Textindex für Object Storage-Dateien.
Die Prozedur CREATE_EXTERNAL_TEXT_INDEX
erstellt einen Textindex für die Objektspeicherdateien, die im Speicherort location_uri
angegeben sind. Der Index wird in regelmäßigen Abständen für alle neuen Ergänzungen oder Löschungen aktualisiert, die mit Dateien im Speicherort-URI ausgeführt werden.
Syntax
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicherort. Bei öffentlichen, vorab authentifizierten oder vorab signierten Bucket-URIs kann ein NULL-Wert angegeben werden. Weitere Informationen finden Sie unter Policys und Rollen für den Zugriff auf Ressourcen konfigurieren. Wenn Sie keinen |
location_uri |
Gibt den Objektspeicher-Bucket oder die Ordner-URI an. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
index_name |
Gibt den Namen des Index an, den Sie für die Dateien im Verzeichnis location_uri erstellen.
Dieser Parameter ist erforderlich. |
|
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;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. Sie können |
|
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 Reguläre Ausdrucksmuster werden nur für den Dateinamen oder Unterordnerpfad in Ihren URIs unterstützt, und der Musterabgleich ist mit dem der Funktion Beispiele:
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 DBMS_CLOUD Packageformatoptionen. |
Hinweise zur Verwendung
-
Die Prozedur
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
unterstützt externe partitionierte Dateien in den unterstützten Cloud-Object Storage-Services, darunter:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage oder Azure Data Lake Storage
-
Amazon S3
-
Amazon S3-Kompatible, darunter: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage und Wasabi Hot Cloud Storage.
-
GitHub-Repository
Die Zugangsdaten stellen eine Eigenschaft auf Tabellenebene dar. Daher müssen sich die externen Dateien in demselben Objektspeicher befinden.
Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.
-
-
Die Prozedur
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
unterstützt hybride partitionierte Dateien in Verzeichnissen, entweder in einem lokalen Dateisystem oder in einem Netzwerkdateisystem. -
Die externen partitionierten Tabellen, die Sie mit
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
erstellen, enthalten zwei unsichtbare Spalten:file$path
undfile$name
. Anhand dieser Spalten können Sie ermitteln, aus welcher Datei ein Datensatz stammt.-
file$path
: Gibt den Dateipfadtext am Anfang des Objektnamens an. -
file$name
: Gibt den Objektnamen an, einschließlich dem gesamten Text, der auf den Bucket-Namen folgt.
-
Beispiele
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name =>'HPT1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) external location
( ''&base_URL/file_11.txt'')
,
partition p2 values less than (2000) external location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000)
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name => 'HPT1',
format => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
partitioning_clause => 'partition by range (B 2 ALANCE)
(partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
partition p3 values less than (3000))' );
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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 |
Hinweise zur Verwendung
-
Dieses Verfahren löscht derzeit laufende Vorgänge (Vorgänge mit dem Status "Wird ausgeführt") nicht.
-
Diese Prozedur löscht alle Loggingtabellen und Logdateien, die mit den Vorgängen verknüpft sind.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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: |
Um
DBMS_CLOUD.DELETE_FILE
mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Schreibberechtigungen für das Verzeichnis erteilen, das die Datei enthält. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user
Schreibberechtigungen zu erteilen:GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;
Beispiel
BEGIN
DBMS_CLOUD.DELETE_FILE
(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. Sie können |
object_uri |
Objekt- oder Datei-URI des zu löschenden Objekts. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. |
force |
Ignorieren Sie Fehler, und melden Sie sie nicht, wenn das Objekt nicht vorhanden ist. Gültige Werte: |
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;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. |
Hinweis zur Verwendung
-
Diese Prozedur löscht alle Loggingtabellen und Logdateien, die mit der in der Eingabe angegebenen Vorgangs-ID verknüpft sind.
Beispiel
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur DROP_EXTERNAL_TEXT_INDEX
Diese Prozedur löscht den Textindex für die Object Storage-Dateien.
Die Prozedur DROP_EXTERNAL_TEXT_INDEX
löscht den angegebenen Index, der mit der Prozedur CREATE_EXTERNAL_TEXT_INDEX
erstellt wurde.
Syntax
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name IN VARCHAR2,
);
Parameter
Parameter | Beschreibung |
---|---|
index_name |
Gibt den Namen des Index an, den Sie löschen. Der Indexname muss mit dem zum Zeitpunkt der Indexerstellung angegebenen Namen übereinstimmen. Dieser Parameter ist erforderlich. |
Beispiel
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
EXPORT_DATA-Prozedur
Basierend auf dem Parameter format
type
exportiert die Prozedur Dateien als Textdateien im CSV-, JSON-, Parquet- oder XML-Format in die Cloud oder in ein Verzeichnis oder schreibt Daten mit dem Zugriffstreiber ORACLE_DATAPUMP in eine Oracle Datapump-Dumpdatei.
Syntax
DBMS_CLOUD.EXPORT_DATA
(
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB,
query IN CLOB);
DBMS_CLOUD.EXPORT_DATA
(
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL,
query IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können Wenn der Zugangsdatenparameter nicht enthalten ist, wird die Ausgabe in ein Verzeichnis angegeben. |
|
Je nach Formatparameterwert und je nachdem, ob Sie einen Zugangsdatenparameter aufnehmen, gibt es verschiedene Formen:
Das Format der URIs ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. |
|
Eine JSON-Zeichenfolge mit Optionen für Exportformate. Die unterstützte Option ist:
|
|
Geben Sie mit diesem Parameter eine SELECT warehouse_id, quantity FROM inventories Weitere Informationen zum Format- Wenn Beispiele: 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 |
Hinweise zur Verwendung:
-
Der von Ihnen angegebene
query
-Parameterwert kann bei Bedarf eine erweiterte Abfrage sein, z.B. eine Abfrage, die Joins oder Unterabfragen enthält. -
Je nach angegebenem Formatparameter gibt
DBMS_CLOUD.EXPORT_DATA
die Ergebnisse der angegebenen Abfrage im Cloud-Objektspeicher oder in einem Verzeichnis in einem der folgenden Formate aus:-
CSV-, JSON-, Parquet- oder XML-Dateien.
Weitere Informationen zur Verwendung von
DBMS_CLOUD.EXPORT_DATA
mit CSV-, JSON-, Parquet- oder XML-Ausgabedateien finden Sie unter Daten als Text in Objektspeicher exportieren und Daten in ein Verzeichnis exportieren. -
Mit dem ORACLE_DATAPUMP-Zugriffstreiber können Sie Daten in eine Dumpdatei schreiben.
-
-
Bei einer CSV-, JSON- oder XML-Ausgabe wird standardmäßig eine neue Ausgabedatei erstellt, wenn eine generierte Datei 10 MB Daten enthält. Wenn Sie jedoch weniger als 10 MB an Ergebnisdaten haben, sind möglicherweise mehrere Ausgabedateien vorhanden, abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Autonomous Database-Instanz.
Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).
Die Standard-Ausgabedatei-Chunk-Größe beträgt 10 MB für CSV, JSON oder XML. Sie können diesen Wert mit dem Parameter
format
und der Optionmaxfilesize
ändern. Weitere Informationen finden Sie unter DBMS_CLOUD Packageformatoptionen für EXPORT_DATA. -
Für die Parquet-Ausgabe ist jede generierte Datei kleiner als 128 MB, und es können mehrere Ausgabedateien generiert werden. Wenn Sie jedoch weniger als 128 MB an Ergebnisdaten haben, sind abhängig vom Datenbankservice und der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) für die Autonomous Database-Instanz möglicherweise mehrere Ausgabedateien vorhanden.
Weitere Informationen finden Sie unter Dateibenennung für Textausgabe (CSV, JSON, Parquet oder XML).
Hinweise zur Verwendung der ORACLE_DATAPUMP-Ausgabe (DBMS_CLOUD.EXPORT_DATA
mit dem format
-Parameter type
, Option datapump
):
-
EXPORT_DATA
verwendetDATA_PUMP_DIR
als Standardloggingverzeichnis. Daher ist die Schreibberechtigung fürDATA_PUMP_DIR
erforderlich, wenn Sie die AusgabeORACLE_DATAPUMP
verwenden. -
Der Autonomous Database-Export mit
DBMS_CLOUD.EXPORT_DATA
und demformat
-Parametertype
, Optiondatapump
, unterstützt nur Oracle Cloud Infrastructure Object Storage, Oracle Cloud Infrastructure Object Storage Classic-Objektspeicher oder Verzeichnisausgabe. -
Wenn Sie
DBMS_CLOUD.EXPORT_DATA
mit dem Parameterformat
der Optiontype
datapump
angeben, darf der Parameterwertcredential_name
kein OCI-Ressourcen-Principal sein. -
Oracle Data Pump unterteilt jeden Teil der Dumpdatei in kleinere Chunks, um schnellere Uploads zu ermöglichen. In der Oracle Cloud Infrastructure Object Storage-Konsole werden für jeden exportierten Teil der Dumpdatei mehrere Dateien angezeigt. Die Größe der tatsächlichen Dumpdateien wird als null (0) angezeigt und die Größe der zugehörigen Datei-Chunks als 10 MB oder weniger. Beispiele:
Wenn Sie die Null-Byte-Dumpdatei aus der Oracle Cloud Infrastructure-Konsole oder mit der Oracle Cloud Infrastructure-CLI herunterladen, erhalten Sie nicht die vollständigen Dumpdateien. Um die vollständigen Dumpdateien aus dem Objektspeicher herunterzuladen, verwenden Sie ein Tool wie cURL, das Swift unterstützt. Geben Sie Ihre Benutzeranmeldung und Ihr Swift-Authentifizierungstoken an.exp01.dmp exp01.dmp_aaaaaa exp02.dmp exp02.dmp_aaaaaa
curl -O -v -X GET -u 'user1@example.com:auth_token' \ https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp
Wenn Sie eine Datei mit den
DBMS_CLOUD
-Prozeduren importieren, die denformat
-Parametertype
mit dem Wertdatapump
unterstützen, müssen Sie nur den primären Dateinamen angeben. Die Prozeduren, die den Formattyp "datapump
" unterstützen, ermitteln die Chunks und laden sie automatisch herunter.Wenn Sie
DBMS_CLOUD.DELETE_OBJECT
verwenden, werden die Chunks automatisch von der Prozedur erkannt und gelöscht, wenn die Prozedur die primäre Datei löscht. -
Die Prozedur
DBMS_CLOUD.EXPORT_DATA
erstellt die Dumpdatei(en) wie folgt aus den von Ihnen angegebenenfile_uri_list
-Werten:-
Wenn weitere Dateien benötigt werden, erstellt die Prozedur zusätzliche Dateien aus
file_uri_list
. -
Die Prozedur überschreibt keine Dateien. Wenn eine Dumpdatei in der
file_uri_list
vorhanden ist, meldetDBMS_CLOUD.EXPORT_DATA
einen Fehler. -
DBMS_CLOUD.EXPORT_DATA
erstellt keine Buckets.
-
-
Die Anzahl der Dumpdateien, die
DBMS_CLOUD.EXPORT_DATA
generiert, wird bei Ausführung der Prozedur bestimmt. Die Anzahl der generierten Dumpdateien hängt von der Anzahl der Dateinamen ab, die Sie im Parameterfile_uri_list
angeben, sowie von der Anzahl der für die Instanz verfügbaren Autonomous Database-OCPUs, dem Servicelevel und der Größe der Daten.Beispiel: Wenn Sie eine Autonomous Database-Instanz mit 1 OCPU oder den Service
low
verwenden, wird eine einzelne Dumpdatei ohne Parallelisierung exportiert, selbst wenn Sie mehrere Dateinamen angeben. Wenn Sie eine Autonomous Database-Instanz mit 4 OCPUs mit dem Servicemedium
oderhigh
verwenden, können die Jobs parallel ausgeführt werden. Wenn Sie mehrere Dateinamen angeben, werden mehrere Dumpdateien exportiert. -
Die Dumpdateien, die Sie mit
DBMS_CLOUD.EXPORT_DATA
erstellen, können nicht mit dem Oracle Data Pump-Befehlimpdp
importiert werden. Abhängig von der Datenbank können Sie folgende Dateien verwenden:-
In einer Autonomous Database können Sie die Dumpdateien mit den
DBMS_CLOUD
-Prozeduren verwenden, die denformat
-Parametertype
mit dem Wert "datapump
" unterstützen. Sie können die Dumpdateien mitDBMS_CLOUD.COPY_DATA
importieren oderDBMS_CLOUD.CREATE_EXTERNAL_TABLE
aufrufen, um eine externe Tabelle zu erstellen. -
In jeder anderen Version von Oracle Database, wie Oracle Database 19c On Premise, können Sie die mit der Prozedur
DBMS_CLOUD.EXPORT_DATA
erstellten Dumpdateien mit dem ZugriffstreiberORACLE_DATAPUMP
importieren. Weitere Informationen finden Sie unter Daten mit dem Zugriffstreiber ORACLE_DATAPUMP entladen und laden.
-
-
Der von Ihnen angegebene
query
-Parameterwert kann bei Bedarf eine erweiterte Abfrage sein, z.B. eine Abfrage, die Joins oder Unterabfragen enthält.
Hinweise zur Verwendung von DBMS_CLOUD.EXPORT_DATA
mit Ausgabe in ein Verzeichnis
-
Das angegebene Verzeichnis muss vorhanden sein, und Sie müssen als Benutzer
ADMIN
angemeldet sein 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 datapump
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp',
format => json_object('type' value 'datapump', 'compression' value 'basic', 'version' value 'latest'),
query => 'SELECT warehouse_id, quantity FROM inventories'
);
END;
/
In diesem Beispiel ist namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
mit dem Formatparameter type
mit dem Wert json
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
mit dem Formatparameter type
mit Wert xml
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
mit dem Formatparameter type
mit Wert csv
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true, 'encryption' value ('user_defined_function' value 'ADMIN.decryption_callback')));
);
END;
/
Das folgende Beispiel zeigt DBMS_CLOUD.EXPORT_DATA
, wie Daten in ein Verzeichnis mit dem Parameter type
mit dem Wert datapump
exportiert werden:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
file_uri_list => 'export_dir:sales.dmp',
format => json_object('type' value 'datapump'),
query => 'SELECT * FROM sales'
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
GET_OBJECT Prozedur und Funktion
Diese Prozedur ist überladen. Die Prozedurform liest ein Objekt aus dem Cloud-Objektspeicher und kopiert es in Autonomous Database. Die Funktionsform liest ein Objekt aus dem Cloud-Objektspeicher und gibt ein BLOB
an Autonomous Database zurück.
Syntax
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können |
|
Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. |
|
Der Name des Verzeichnisses in der Datenbank. Fuß 1Sie können eine Tabellen-Hyperlink-URL wie folgt verwenden:
|
|
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
Um DBMS_CLOUD.GET_OBJECT
mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer WRITE
-Berechtigungen für das Verzeichnis erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user
Schreibberechtigungen zu erteilen:
GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;
Werte zurückgeben
Die Funktionsform liest aus dem Objektspeicher, und DBMS_CLOUD.GET_OBJECT
gibt ein BLOB
zurück.
Beispiele
BEGIN
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
So lesen Sie Zeichendaten aus einer Datei im Objektspeicher:
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
So fügen Sie ein im Objektspeicher gespeichertes Bild einem BLOB
in der Datenbank hinzu:
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
In diesem Beispiel ist namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
LIST_FILES-Funktion
Diese Funktion listet die Dateien im angegebenen Verzeichnis auf. Die Ergebnisse umfassen die Dateinamen und zusätzliche Metadaten zu den Dateien, wie die Dateigröße in Byte sowie die Zeitstempel der Erstellung und der letzten Änderung.
Syntax
DBMS_CLOUD.LIST_FILES
(
directory_name IN VARCHAR2)
RETURN TABLE;
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name des Verzeichnisses in der Datenbank. |
Hinweise zur Verwendung
-
Um
DBMS_CLOUD.LIST_FILES
mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, umadb_user
Leseberechtigungen zu erteilen:GRANT READ ON DIRECTORY data_pump_dir TO adb_user;
-
Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp
DBMS_CLOUD_TYPES.list_object_ret_t
. -
DBMS_CLOUD.LIST_FILES
ruft den Prüfsummenwert nicht ab und 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
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. Sie können |
location_uri |
Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. |
Hinweise zur Verwendung
-
In diesem Fall gibt
DBMS_CLOUD.LIST_OBJECTS
keine Werte für bestimmte Attribute zurück, und der Rückgabewert für das Feld istNULL
.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 Oracle Cloud Infrastructure Classic 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 GitHub-Repository -
Der Prüfsummenwert ist die MD5-Prüfsumme. Hierbei handelt es sich um eine Hexadezimalzahl mit 32 Zeichen, die auf dem Objektinhalt berechnet wird. Es wird ein anderer Prüfsummenwert erwartet, wenn
OCI$RESOURCE_PRINCIPAL
-Zugangsdaten verwendet werden. -
Dies ist eine Pipeline-Tabellenfunktion mit dem Rückgabetyp
DBMS_CLOUD_TYPES.list_object_ret_t
.
Beispiel
Dies ist eine Pipelinefunktion, die eine Zeile für jedes Objekt zurückgibt. Beispiel: Verwenden Sie die folgende Abfrage, um diese Funktion zu verwenden:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS
('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
In diesem Beispiel ist namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
Prozedur MOVE_OBJECT
Mit dieser Prozedur wird ein Objekt von einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen verschoben.
Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.
Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.
Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname für das Ziel angegeben ist.
Syntax
DBMS_CLOUD.MOVE_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Quell-Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien verschoben werden müssen. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort. Sie können 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;
/
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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. Sie können |
|
Objekt- oder Datei-URI. Das Format der URI ist vom verwendeten Cloud-Object Storage-Service abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD-URI-Formate. |
|
Der Name des Verzeichnisses in der Autonomous Database. Fuß 2 |
|
Gibt die |
|
Der Name der Datei im angegebenen Verzeichnis. |
|
Gibt die Komprimierung an, mit der das Objekt gespeichert wird. Standardwert: |
Fußnote 2
Um DBMS_CLOUD.PUT_OBJECT
mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen. Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um adb_user
Leseberechtigungen zu erteilen:
GRANT READ ON DIRECTORY data_pump_dir TO adb_user;
Beispiel
So verarbeiten Sie BLOB
-Daten nach der Datenbankverarbeitung und speichern die Daten dann direkt in einer Datei im Objektspeicher:
DECLARE
my_blob_data BLOB;
BEGIN
/* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
contents => my_blob_data));
END;
/
Hinweise zur Verwendung
Abhängig von Ihrem Cloud-Objektspeicher ist die Größe des übertragenen Objekts wie folgt begrenzt:
Cloud-Object Storage-Service | Größenlimit für Objektübertragung |
---|---|
Oracle Cloud Infrastructure Object Storage |
50 GB |
Amazon S3 |
5 GB |
Azure Blob Storage oder Azure Data Lake Storage |
256 MB |
Amazon S3-kompatibel |
Wird vom Objektspeicherprovider festgelegt. Weitere Informationen finden Sie in der Dokumentation des Providers. |
Der Oracle Cloud Infrastructure-Objektspeicher lässt das Schreiben von Dateien in einen öffentlichen Bucket ohne Angabe von Zugangsdaten nicht zu (mit Oracle Cloud Infrastructure können Benutzer Objekte aus öffentlichen Buckets herunterladen). Daher müssen Sie einen Zugangsdatennamen mit gültigen Zugangsdaten angeben, um ein Objekt in einem öffentlichen Oracle Cloud Infrastructure-Bucket mit PUT_OBJECT
zu speichern.
Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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, führen zu Fehlern. Standardwert: False |
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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 nacheinander gelesen, bis |
|
Wenn definiert, wird nur eine bestimmte Unterpartition validiert. Wenn keine Angabe gemacht wird, wird aus allen externen Partitionen oder Unterpartitionen nacheinander 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 |
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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 zurückgewiesenen Zeile gestoppt. Wenn die externe Tabelle den |
Hinweise zur Verwendung
-
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
funktioniert sowohl mit partitionierten externen Tabellen als auch mit Hybrid-partitionierten Tabellen. Dadurch werden möglicherweise Daten aus allen externen Partitionen gelesen, bisrowcount
erreicht ist oderstop_on_error
angewendet wird. Sie haben keine Kontrolle darüber, welche oder welche Teile einer Partition in welcher Reihenfolge gelesen werden.
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
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 angegeben 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 nacheinander 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 |
Übergeordnetes Thema: DBMS_CLOUD für Objekte und Dateien
DBMS_CLOUD für Bulk File Management
Die Unterprogramme für Bulkdateivorgänge im Package DBMS_CLOUD.
Unterprogramm | Beschreibung |
---|---|
Prozedur BULK_COPY |
Mit dieser Prozedur werden Dateien aus einem Cloud-Objektspeicher-Bucket in einen anderen kopiert. |
Prozedur BULK_DELETE |
Mit dieser Prozedur werden Dateien aus dem Cloud-Objektspeicher-Bucket oder -Ordner gelöscht. |
Prozedur BULK_DOWNLOAD |
Mit dieser Prozedur werden Dateien aus dem Cloud-Objektspeicher-Bucket in ein Verzeichnis in Autonomous Database heruntergeladen. |
Prozedur BULK_MOVE |
Mit dieser Prozedur werden Dateien von einem Cloud-Objektspeicher-Bucket in einen anderen verschoben. |
Prozedur BULK_UPLOAD |
Diese Prozedur lädt Dateien aus einem Verzeichnis in Autonomous Database in den Cloud-Objektspeicher hoch. |
- Prozedur BULK_COPY
Diese Prozedur kopiert Dateien im Bulkverfahren von einem Cloud-Objektspeicher-Bucket in einen anderen. Mit dem überladenen Formular können Sie den Parameteroperation_id
verwenden. - Prozedur BULK_DELETE
Diese Prozedur löscht Dateien im Bulkverfahren aus dem Cloud-Objektspeicher. Mit dem überladenen Formular können Sie den Parameteroperation_id
verwenden. Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem OperatorREGEXP_LIKE
kompatibel ist. - Prozedur BULK_DOWNLOAD
Diese Prozedur lädt Dateien aus dem Cloud-Objektspeicher in ein Autonomous Database-Verzeichnis herunter. Mit dem überladenen Formular können Sie den Parameteroperation_id
verwenden. Sie können die Liste der herunterzuladenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem OperatorREGEXP_LIKE
kompatibel ist. - Prozedur BULK_MOVE
Diese Prozedur verschiebt Dateien im Bulkverfahren von einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen. Mit dem überladenen Formular können Sie den Parameteroperation_id
verwenden. - Prozedur BULK_UPLOAD
Diese Prozedur kopiert Dateien aus einem Autonomous Database-Verzeichnis in den Cloud-Objektspeicher. Mit dem überladenen Formular können Sie den Parameteroperation_id
verwenden.
Übergeordnetes Thema: DBMS_CLOUD Unterprogramme und REST-APIs
Prozedur BULK_COPY
Mit dieser Prozedur werden Dateien im Bulkverfahren aus einem Cloud-Objektspeicher-Bucket in einen anderen kopiert. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE
kompatibel ist.
Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.
Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.
Der Quellzugangsdaten-Name wird standardmäßig auch vom Zielspeicherort verwendet.
Syntax
DBMS_CLOUD.BULK_COPY
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_COPY
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien kopiert werden müssen. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort. Sie können Wenn Sie keinen |
|
Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator Wenn Sie keinen Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung. |
|
Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben. Folgende Formatoptionen werden unterstützt:
Wenn Sie keinen |
|
Mit diesem Parameter können Sie den Fortschritt und den endgültigen Status des Ladevorgangs als entsprechende ID in der View |
Hinweise zur Verwendung
-
Wenn die Quell- und Ziel-URI auf denselben Object Storage-Bucket oder -Ordner verweisen, wird ein Fehler zurückgegeben.
Beispiel
BEGIN
DBMS_CLOUD.BULK_COPY
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Bulk File Management
Prozedur BULK_DELETE
Mit dieser Prozedur werden Dateien im Bulkverfahren aus dem Cloud-Objektspeicher gelöscht. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden. Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE
kompatibel ist.
Syntax
DBMS_CLOUD.BULK_DELETE
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DELETE
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt die URI an, die auf einen Object Storage-Speicherort in Autonomous Database verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator Wenn Sie keinen Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung. |
|
Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben. Folgende Formatoptionen werden unterstützt:
Wenn Sie keinen |
|
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.BULK_DELETE
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Bulk File Management
Prozedur BULK_DOWNLOAD
Diese Prozedur lädt Dateien aus dem Cloud-Objektspeicher in ein Autonomous Database-Verzeichnis herunter. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden. Sie können die Liste der herunterzuladenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE
kompatibel ist.
Syntax
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt die URI an, die auf einen Object Storage-Speicherort in Autonomous Database verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Der Name des Verzeichnisses in Autonomous Database, aus dem Sie die Dateien herunterladen möchten. Dieser Parameter ist erforderlich. |
|
Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator Wenn Sie keinen Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung. |
|
Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben. Folgende Formatoptionen werden unterstützt:
Wenn Sie keinen |
|
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.BULK_DOWNLOAD
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Bulk File Management
Prozedur BULK_MOVE
Bei dieser Prozedur werden Dateien im Bulkverfahren aus einem Cloud-Objektspeicher-Bucket oder -Ordner in einen anderen verschoben. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Sie können die Liste der zu löschenden Dateien mit einem regulären Ausdrucksmuster filtern, das mit dem Operator REGEXP_LIKE
kompatibel ist.
Der Quell- und Ziel-Bucket oder -Ordner kann sich in demselben oder einem anderen Cloud-Objektspeicherprovider befinden.
Wenn sich die Quelle und das Ziel in unterschiedlichen Objektspeichern befinden oder unterschiedliche Accounts mit demselben Cloud-Provider haben, können Sie separate Zugangsdatennamen für die Quell- und Zielspeicherorte angeben.
Der Zugangsdatenname der Quelle wird standardmäßig auch vom Zielspeicherort verwendet, wenn kein Zugangsdatenname für das Ziel angegeben ist.
Der erste Schritt beim Verschieben von Dateien besteht darin, sie in den Zielspeicherort zu kopieren und dann die Quelldateien zu löschen, nachdem sie erfolgreich kopiert wurden.
Das Objekt wird umbenannt und nicht verschoben, wenn der Objektspeicher Umbenennungsvorgänge zwischen Quell- und Zielspeicherorten zulässt.
Syntax
DBMS_CLOUD.BULK_MOVE
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_MOVE
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Quell-Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt den URI an, der auf den Object Storage-Quell-Bucket oder das Verzeichnis des Ordners verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Gibt die URI für den Object Storage-Ziel-Bucket oder -Ordner an, in den die Dateien verschoben werden müssen. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Zielspeicherort. Sie können Wenn Sie keinen |
|
Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator Wenn Sie keinen Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung. |
|
Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben. Folgende Formatoptionen werden unterstützt:
Wenn Sie keinen |
|
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.BULK_MOVE
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
Wenn die Quell- und Ziel-URI auf denselben Objektspeicher-Bucket oder -Ordner verweisen, wird ein Fehler zurückgegeben.
Übergeordnetes Thema: DBMS_CLOUD für Bulk File Management
Prozedur BULK_UPLOAD
Diese Prozedur kopiert Dateien aus einem Autonomous Database-Verzeichnis in den Cloud-Objektspeicher. Mit dem überladenen Formular können Sie den Parameter operation_id
verwenden.
Syntax
DBMS_CLOUD.BULK_UPLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_UPLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für den Zugriff auf den Cloud-Objektspeicher. Sie können Wenn Sie keinen |
|
Gibt die URI an, die auf ein Object Storage-Verzeichnis zum Hochladen von Dateien verweist. Dieser Parameter ist erforderlich. Das Format der URIs ist vom Cloud-Objektspeicherservice abhängig. Weitere Informationen finden Sie unter DBMS_CLOUD URI-Formate. |
|
Der Name des Verzeichnisses in Autonomous Database, aus dem Sie Dateien hochladen. Dieser Parameter ist erforderlich. |
regex_filter |
Gibt den REGEX-Ausdruck zum Filtern von Dateien an. Das REGEX-Ausdrucksmuster muss mit dem Operator Wenn Sie keinen Weitere Informationen finden Sie unter REGEXP_LIKE-Bedingung. |
|
Gibt die zusätzlichen Konfigurationsoptionen für den Dateivorgang an. Diese Optionen werden als JSON-Zeichenfolge angegeben. Folgende Formatoptionen werden unterstützt:
Wenn Sie keinen |
|
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.BULK_UPLOAD
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
);
END;
/
Übergeordnetes Thema: DBMS_CLOUD für Bulk File Management
REST-APIs für DBMS_CLOUD
In diesem Abschnitt werden die DBMS_CLOUD
-REST-APIs beschrieben, die mit Autonomous Database bereitgestellt werden.
REST-API | Beschreibung |
---|---|
Diese Funktion gibt die HTTP-Antwortheader als JSON-Daten in einem JSON-Objekt in Autonomous Database zurück. | |
Diese Funktion gibt die HTTP-Antwort im RAW-Format in Autonomous Database zurück. Dies ist nützlich, wenn als HTTP-Antwort ein Binärformat erwartet wird. | |
Mit dieser Funktion wird der HTTP-Antwortstatuscode als Ganzzahl in Autonomous Database zurückgegeben. Mit dem Statuscode kann ermittelt werden, ob die Anforderung erfolgreich war. | |
Diese Funktion gibt die HTTP-Antwort im TEXT-Format zurück (VARCHAR2 oder CLOB ) in Autonomous Database. In der Regel geben die meisten Cloud-REST-APIs eine JSON-Antwort im Textformat zurück. Diese Funktion ist nützlich, wenn Sie erwarten, dass die HTTP-Antwort im Textformat vorliegt.
|
|
Diese Funktion gibt die konfigurierte Ergebniscachegröße zurück. |
|
Diese Funktion beginnt eine HTTP-Anforderung, ruft die Antwort ab und beendet die Antwort in Autonomous Database. Diese Funktion bietet einen Workflow zum Senden einer Cloud-REST-API-Anforderung mit Argumenten und einem Antwortcode und einer Payload. | |
Mit dieser Prozedur wird die maximale Cachegröße für die aktuelle Session festgelegt. |
- DBMS_CLOUD REST-API - Überblick
Wenn Sie PL/SQL in Ihrer Anwendung verwenden und Cloud-REST-APIs aufrufen müssen, können Sie die REST-API-Anforderungen mitDBMS_CLOUD.SEND_REQUEST
senden. - DBMS_CLOUD-REST-API - Konstanten
Hier werden dieDBMS_CLOUD
-Konstanten zum Erstellen vonHTTP
-Anforderungen mitDBMS_CLOUD.SEND_REQUEST
beschrieben. - REST-API-Ergebniscache DBMS_CLOUD
Sie können die REST-API-Ergebnisse fürDBMS_CLOUD
speichern, wenn Sie den Parametercache
mitDBMS_CLOUD.SEND_REQUEST
auf "true" setzen. In der ViewSESSION_CLOUD_API_RESULTS
werden die Spalten beschrieben, die Sie beim Speichern von REST-API-Ergebnissen verwenden können. - GET_RESPONSE_HEADERS-Funktion
Diese Funktion gibt die HTTP-Antwortheader als JSON-Daten in einem JSON-Objekt zurück. - GET_RESPONSE_RAW-Funktion
Diese Funktion gibt die HTTP-Antwort im RAW-Format zurück. Dies ist nützlich, wenn als HTTP-Antwort ein Binärformat erwartet wird. - GET_RESPONSE_STATUS_CODE-Funktion
Diese Funktion gibt den HTTP-Antwortstatuscode als Ganzzahl zurück. Mit dem Statuscode kann ermittelt werden, ob die Anforderung erfolgreich war. - Funktion GET_RESPONSE_TEXT
Diese Funktion gibt die HTTP-Antwort imTEXT
-Format zurück (VARCHAR2
oderCLOB
). In der Regel geben die meisten Cloud-REST-APIs eine JSON-Antwort im Textformat zurück. Diese Funktion ist nützlich, wenn Sie erwarten, dass die HTTP-Antwort im Textformat vorliegt. - GET_API_RESULT_CACHE_SIZE-Funktion
Diese Funktion gibt die konfigurierte Ergebniscachegröße zurück. Der Wert für die Cachegröße gilt nur für die aktuelle Session. - SEND_REQUEST-Funktion und -Prozedur
Diese Funktion und Prozedur beginnen eine HTTP-Anforderung, rufen die Antwort ab und beenden die Antwort. Diese Funktion stellt einen Workflow zum Senden einer Cloud-REST-API-Anforderung mit Argumenten bereit, und die Funktion gibt einen Antwortcode und eine Payload zurück. Wenn Sie die Prozedur verwenden, können Sie Ergebnisse und Antwortdetails aus den gespeicherten Ergebnissen mit der ViewSESSION_CLOUD_API_RESULTS
anzeigen. - Prozedur SET_API_RESULT_CACHE_SIZE
Diese Prozedur legt die maximale Cachegröße für die aktuelle Session fest. Der Wert für die Cachegröße gilt nur für die aktuelle Session. - DBMS_CLOUD REST-API-Beispiele
Zeigt Beispiele mitDBMS_CLOUD.SEND_REQUEST
, um einen Oracle Cloud Infrastructure Object Storage-Bucket zu erstellen und zu löschen, und ein Beispiel, um alle Compartments im Mandanten aufzulisten.
Übergeordnetes Thema: DBMS_CLOUD Unterprogramme und REST-APIs
DBMS_CLOUD REST-API - Überblick
Wenn Sie PL/SQL in Ihrer Anwendung verwenden und Cloud-REST-APIs aufrufen müssen, können Sie die REST-API-Anforderungen mit DBMS_CLOUD.SEND_REQUEST
senden.
Mit den DBMS_CLOUD
-REST-API-Funktionen können Sie HTTP
-Anforderungen mit DBMS_CLOUD.SEND_REQUEST
erstellen und Ergebnisse abrufen und speichern. Diese Funktionen stellen eine generische API bereit, mit der Sie eine beliebige REST-API mit den folgenden unterstützten Cloud-Services aufrufen können:
- Oracle Cloud Infrastructure
Informationen zu Oracle Cloud Infrastructure-REST-APIs finden Sie unter API-Referenz und -Endpunkte.
- Amazon Web Services (AWS)
Informationen zu REST-APIs für Amazon Web Services finden Sie unter Guides and API References.
- Azure Cloud Fußnote 3
Informationen zu Azure-REST-APIs finden Sie in der Azure-REST-API-Referenz.
- Oracle Cloud Infrastructure Classic
Unter Alle REST-Endpunkte finden Sie Informationen zu Oracle Cloud Infrastructure Classic-REST-APIs.
- GitHub-Repository
Weitere Informationen finden Sie unter GitHub-REST-API.
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
DBMS_CLOUD-REST-API - Konstanten
Beschreibung der DBMS_CLOUD
-Konstanten zum Erstellen von HTTP
-Anforderungen mit DBMS_CLOUD.SEND_REQUEST
.
DBMS_CLOUD
unterstützt die HTTP-Methoden GET
, PUT
, POST
, HEAD
und DELETE
. Die für eine HTTP-Anforderung zu verwendende REST-API-Methode ist in der Regel in der Cloud-REST-API-Dokumentation dokumentiert.
Name | Typ | Value |
---|---|---|
METHOD_DELETE |
VARCHAR2(6) |
'DELETE' |
METHOD_GET |
VARCHAR2(3) |
'GET' |
METHOD_HEAD |
VARCHAR2(4) |
'HEAD' |
METHOD_POST |
VARCHAR2(4) |
'POST' |
METHOD_PUT |
VARCHAR2(3) |
'PUT' |
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
DBMS_CLOUD REST-API - Ergebniscache
Sie können die REST-API-Ergebnisse für DBMS_CLOUD
speichern, wenn Sie den Parameter cache
mit DBMS_CLOUD.SEND_REQUEST
auf "true" setzen. In der View SESSION_CLOUD_API_RESULTS
werden die Spalten beschrieben, die Sie beim Speichern von REST-API-Ergebnissen verwenden können.
Standardmäßig werden in DBMS_CLOUD
-REST-API-Aufrufen keine Ergebnisse für Ihre Session gespeichert. In diesem Fall verwenden Sie die Funktion DBMS_CLOUD.SEND_REQUEST
, um Ergebnisse zurückzugeben.
Wenn Sie DBMS_CLOUD.SEND_REQUEST
verwenden und den Parameter cache
auf TRUE
setzen, werden Ergebnisse gespeichert, und Sie können vergangene Ergebnisse in der View SESSION_CLOUD_API_RESULTS
anzeigen. Das Speichern und Abfragen historischer Ergebnisse von DBMS_CLOUD
-REST-API-Anforderungen kann hilfreich sein, wenn Sie mit vorherigen Ergebnissen in Ihren Anwendungen arbeiten müssen.
Beispiel: Zum Abfragen der letzten REST-API-Ergebnisse von DBMS_CLOUD
verwenden Sie die View SESSION_CLOUD_API_RESULTS
:
SELECT timestamp FROM SESSION_CLOUD_API_RESULTS;
Wenn Sie die DBMS_CLOUD
-REST-API-Ergebnisse mit DBMS_CLOUD.SEND_REQUEST
speichern, sind die gespeicherten Daten nur innerhalb derselben Session (Verbindung) verfügbar. Nachdem die Session beendet wurde, sind die gespeicherten Daten nicht mehr verfügbar.
Mit DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE
und DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
können Sie die DBMS_CLOUD
-REST-API-Cachegröße anzeigen und festlegen sowie das Caching deaktivieren.
- DBMS_CLOUD REST-API-Ergebnisparameter cache_scope
Wenn SieDBMS_CLOUD
-REST-API-Ergebnisse mitDBMS_CLOUD.SEND_REQUEST
speichern, wird der Zugriff auf die Ergebnisse inSESSION_CLOUD_API_RESULTS
basierend auf dem Wert voncache_scope
gewährt. - Ansicht SESSION_CLOUD_API_RESULTS der REST-API DBMS_CLOUD
Sie können die REST-API-Ergebnisse fürDBMS_CLOUD
speichern, wenn Sie den Parametercache
mitDBMS_CLOUD.SEND_REQUEST
auf "true" setzen. In der ViewSESSION_CLOUD_API_RESULTS
werden die Spalten beschrieben, die Sie beim Speichern von REST-API-Ergebnissen verwenden können.
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
DBMS_CLOUD REST-API-Ergebnisparameter cache_scope
Wenn Sie DBMS_CLOUD
-REST-API-Ergebnisse mit DBMS_CLOUD.SEND_REQUEST
speichern, wird der Zugriff auf die Ergebnisse in SESSION_CLOUD_API_RESULTS
basierend auf dem Wert von cache_scope
gewährt.
Standardmäßig hat cache_scope
den Wert 'PRIVATE'
, und nur der aktuelle Benutzer der Session kann auf die Ergebnisse zugreifen. Wenn Sie cache_scope
auf 'PUBLIC'
setzen, können alle Sessionbenutzer auf die Ergebnisse zugreifen. Der Standardwert für cache_scope
gibt an, dass jeder Benutzer nur DBMS_CLOUD.SEND_REQUEST
-REST-API-Ergebnisse anzeigen kann, die von den Prozeduren generiert wurden, die er mit den Rechten des Aufrufers aufrufen. Wenn Sie DBMS_CLOUD.SEND_REQUEST
in einer Session aufrufen, gibt es drei Möglichkeiten, basierend auf dem Wert von cache_scope
zu bestimmen, ob der aktuelle Benutzer Ergebnisse im Cache sehen kann:
-
Sie führen
DBMS_CLOUD.SEND_REQUEST
direkt als Anweisung der obersten Ebene aus, und der Aufruf vonDBMS_CLOUD.SEND_REQUEST
und die Ergebnisse der REST-API werden mit demselben Benutzernamen gespeichert. In diesem Fall haben Sie Zugriff auf alle Ergebnisse mit dem Standardwert 'PRIVATE'
, der fürcache_scope
festgelegt ist. -
Sie schreiben eine Prozedur mit Wrapper-Invoker-Berechtigungen, und als aktueller Benutzer ruft Ihr Aufruf mit
DBMS_CLOUD.SEND_REQUEST
die Prozedur auf, und die REST-API-Ergebnisse werden mit demselben Benutzernamen gespeichert. In diesem Fall haben Sie Zugriff auf alle Ergebnisse mit dem Standardwert 'PRIVATE'
, der fürcache_scope
festgelegt ist. -
Sie schreiben eine Prozedur mit Wrapper-Definer-Rechten, und die Prozedur gehört einem anderen Benutzer. Wenn Sie
DBMS_CLOUD.SEND_REQUEST
innerhalb der Prozedur aufrufen, werden die Ergebnisse mit dem Benutzernamen des Prozedureigentums gespeichert.In diesem Fall ruft ein anderer Benutzer mit Definer-Berechtigungen
DBMS_CLOUD.SEND_REQUEST
auf, und die REST-API-Ergebnisse werden mit dem Eigentümer der Prozedur dieses Erstellers gespeichert. In diesem Fall kann die Session des ausführenden Benutzers die Ergebnisse standardmäßig nicht anzeigen, wenncache_scope
den WertPRIVATE'
hat.Wenn der Prozedureigentümer des Erstellers die Ergebnisse jedem aufrufenden Benutzer zur Verfügung stellen möchte, muss er
cache_scope
inDBMS_CLOUD.SEND_REQUEST
auf'PUBLIC'
setzen.
Übergeordnetes Thema: DBMS_CLOUD REST-API - Ergebniscache
DBMS_CLOUD REST-API-Ansicht SESSION_CLOUD_API_RESULTS
Sie können die REST-API-Ergebnisse für DBMS_CLOUD
speichern, wenn Sie den Parameter cache
mit DBMS_CLOUD.SEND_REQUEST
auf "true" setzen. In der View SESSION_CLOUD_API_RESULTS
werden die Spalten beschrieben, die Sie beim Speichern von REST-API-Ergebnissen verwenden können.
Die View SESSION_CLOUD_API_RESULTS
wird erstellt, wenn Sie Ergebnisse mit DBMS_CLOUD.SEND_REQUEST
cachen. Sie können historische Ergebnisse abfragen, die zu Ihrer Benutzersession gehören. Wenn die Session beendet ist, werden die Daten in SESSION_CLOUD_API_RESULTS
gelöscht.
Spalte | Beschreibung |
---|---|
URI |
Die Anforderungs-URL der DBMS_CLOUD -REST-API
|
TIMESTAMP |
Zeitstempel der DBMS_CLOUD -REST-API-Antwort
|
CLOUD_TYPE |
Der DBMS_CLOUD -REST-API-Cloud-Typ, wie Oracle Cloud Infrastructure, AMAZON_S3 und AZURE_BLOB
|
REQUEST_METHOD |
Die Anforderungsmethode der REST-API der DBMS_CLOUD -REST-API, wie GET , PUT , HEAD |
REQUEST_HEADERS |
Die DBMS_CLOUD -REST-API-Anforderungsheader
|
REQUEST_BODY_TEXT |
Der DBMS_CLOUD -REST-API-Anforderungsbody in CLOB |
RESPONSE_STATUS_CODE |
Der REST-API-Antwortstatuscode DBMS_CLOUD , wie 200(OK) , 404(Not Found) |
RESPONSE_HEADERS |
Die REST-API-Antwortheader DBMS_CLOUD
|
RESPONSE_BODY_TEXT |
Der DBMS_CLOUD -REST-API-Antwortbody in CLOB |
SCOPE |
Der von |
Übergeordnetes Thema: DBMS_CLOUD REST-API - Ergebniscache
Funktion GET_RESPONSE_HEADERS
Diese Funktion gibt die HTTP-Antwortheader als JSON-Daten in einem JSON-Objekt zurück.
Syntax
DBMS_CLOUD.GET_RESPONSE_HEADERS
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN JSON_OBJECT_T;
Parameter
Parameter | Beschreibung |
---|---|
resp |
Von |
Ausnahmen
Ausnahme: | Fehler | Beschreibung |
---|---|---|
invalid_response |
ORA-20025 |
Ungültiges Antworttypobjekt an |
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
Funktion GET_RESPONSE_RAW
Diese Funktion gibt die HTTP-Antwort im RAW-Format zurück. Dies ist nützlich, wenn als HTTP-Antwort ein Binärformat erwartet wird.
Syntax
DBMS_CLOUD.GET_RESPONSE_RAW
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN BLOB;
Parameter
Parameter | Beschreibung |
---|---|
resp |
Von |
Ausnahmen
Ausnahme: | Fehler | Beschreibung |
---|---|---|
invalid_response |
ORA-20025 |
Ungültiges Antworttypobjekt an |
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
Funktion GET_RESPONSE_STATUS_CODE
Diese Funktion gibt den HTTP-Antwortstatuscode als Ganzzahl zurück. Mit dem Statuscode kann ermittelt werden, ob die Anforderung erfolgreich war.
Syntax
DBMS_CLOUD.GET_RESPONSE_STATUS_CODE
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN PLS_INTEGER;
Parameter
Parameter | Beschreibung |
---|---|
resp |
Von |
Ausnahmen
Ausnahme: | Fehler | Beschreibung |
---|---|---|
invalid_response |
ORA-20025 |
Ungültiges Antworttypobjekt an |
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
Funktion GET_RESPONSE_TEXT
Diese Funktion gibt die HTTP-Antwort im TEXT
-Format zurück (VARCHAR2
oder CLOB
). In der Regel geben die meisten Cloud-REST-APIs eine JSON-Antwort im Textformat zurück. Diese Funktion ist nützlich, wenn Sie erwarten, dass die HTTP-Antwort im Textformat vorliegt.
Syntax
DBMS_CLOUD.GET_RESPONSE_TEXT
(
resp IN DBMS_CLOUD_TYPES.resp)
RETURN CLOB;
Parameter
Parameter | Beschreibung |
---|---|
resp |
Von |
Ausnahmen
Ausnahme: | Fehler | Beschreibung |
---|---|---|
invalid_response |
ORA-20025 |
Ungültiges Antworttypobjekt an |
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
Funktion GET_API_RESULT_CACHE_SIZE
Diese Funktion gibt die konfigurierte Ergebniscachegröße zurück. Der Wert für die Cachegröße gilt nur für die aktuelle Session.
Syntax
DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE
()
RETURN NUMBER;
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
Funktion und Prozedur SEND_REQUEST
Diese Funktion und Prozedur starten eine HTTP-Anforderung, rufen die Antwort ab und beenden die Antwort. Diese Funktion stellt einen Workflow zum Senden einer Cloud-REST-API-Anforderung mit Argumenten bereit, und die Funktion gibt einen Antwortcode und eine Payload zurück. Wenn Sie die Prozedur verwenden, können Sie Ergebnisse und Antwortdetails aus den gespeicherten Ergebnissen mit der View SESSION_CLOUD_API_RESULTS
anzeigen.
Syntax
DBMS_CLOUD.SEND_REQUEST
(
credential_name IN VARCHAR2,
uri IN VARCHAR2,
method IN VARCHAR2,
headers IN CLOB DEFAULT NULL,
async_request_url IN VARCHAR2 DEFAULT NULL,
wait_for_states IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
timeout IN NUMBER DEFAULT 0,
cache IN PL/SQL BOOLEAN DEFAULT FALSE,
cache_scope IN VARCHAR2 DEFAULT 'PRIVATE',
body IN BLOB DEFAULT NULL)
RETURN DBMS_CLOUD_TYPES.resp;
DBMS_CLOUD.SEND_REQUEST
(
credential_name IN VARCHAR2,
uri IN VARCHAR2,
method IN VARCHAR2,
headers IN CLOB DEFAULT NULL,
async_request_url IN VARCHAR2 DEFAULT NULL,
wait_for_states IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
timeout IN NUMBER DEFAULT 0,
cache IN PL/SQL BOOLEAN DEFAULT FALSE,
cache_scope IN VARCHAR2 DEFAULT 'PRIVATE',
body IN BLOB DEFAULT NULL);
Parameter
Parameter | Beschreibung |
---|---|
|
Der Name der Zugangsdaten für die Authentifizierung mit der entsprechenden Cloud-basierten API. Sie können |
uri |
HTTP-URI zum Erstellen der Anforderung. |
method |
HTTP-Anforderungsmethode: Weitere Informationen finden Sie unter DBMS_CLOUD-REST-API - Konstanten. |
headers |
HTTP-Anforderungsheader für die entsprechende Cloud-native API im JSON-Format. Die Authentifizierungsheader werden automatisch festgelegt. Übergeben Sie nur benutzerdefinierte Header. |
|
URL für eine asiatische Anforderung. Um die URL abzurufen, wählen Sie Ihre Anforderungs-API aus der Liste der APIs aus (siehe https://docs.cloud.oracle.com/en-us/iaas/api/). Navigieren Sie dann im linken Fensterbereich zur API für Ihre Anforderung. Beispiel: Database Services-API → Autonomous Database → StopAutonomousDatabase. Auf dieser Seite wird das API-Home (und der Endpunkt) angezeigt. Hängen Sie dann den Basisendpunkt mit dem relativen Pfad an, der für den Link WorkRequest der Arbeitsanforderung abgerufen wurde. |
wait_for_states |
"Auf Status warten" ist ein Status vom Typ Mehrere Status sind für |
timeout |
Gibt den Timeout (in Sekunden) für asynchrone Anforderungen mit den Parametern Der Standardwert ist |
cache |
Wenn Der Standardwert ist |
cache_scope |
Gibt an, ob jeder Benutzer Zugriff auf diesen Anforderungsergebniscache haben kann. Gültige Werte: |
body |
HTTP-Anforderungstext für |
Ausnahmen
Ausnahme: | Fehler | Beschreibung |
---|---|---|
invalid_req_method |
ORA-20023 |
Die an |
invalid_req_header |
ORA-20024 |
An |
Hinweise zur Verwendung
-
Wenn Sie Oracle Cloud Infrastructure verwenden, müssen Sie einen signaturschlüsselbasierten Zugangsdatenwert für
credential_name
verwenden. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL. -
Mit den optionalen Parametern
async_request_url
,wait_for_states
undtimeout
können Sie Anforderungen mit langer Ausführungszeit bearbeiten. Mit dieser asynchronen Form vonsend_request
wartet die Funktion auf den inwait_for_states
angegebenen Abschlussstatus, bevor sie zurückgibt. Wenn Sie diese Parameter in der Sendeanforderung verwenden, übergeben Sie die erwarteten Rückgabestatus im Parameterwait_for_states
. Mit dem Parameterasync_request_url
können Sie eine verknüpfte Arbeitsanforderung angeben. Die Anforderung gibt nicht sofort einen Wert zurück. Stattdessen prüft die Anforderung dieasync_request_url
, bis der Rückgabestatus einer der erwarteten Status ist oder dertimeout
überschritten wird (timeout
ist optional). Wenn keintimeout
angegeben ist, wartet die Anforderung, bis ein inwait_for_states
gefundener Status auftritt.
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
SET_API_RESULT_CACHE_SIZE-Prozedur
Mit dieser Prozedur wird die maximale Cachegröße für die aktuelle Session festgelegt. Der Wert für die Cachegröße gilt nur für die aktuelle Session.
Syntax
DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
(
cache_size IN NUMBER);
Parameter
Parameter | Beschreibung |
---|---|
cache_size |
Setzt die maximale Cachegröße auf den angegebenen Wert Wenn die Cachegröße auf Die Standardcachegröße beträgt |
Ausnahmen
Ausnahme: | Fehler | Beschreibung |
---|---|---|
invalid API result cache size |
ORA-20032 |
Der Mindestwert ist 0 und der Höchstwert ist 10000. Diese Ausnahme wird angezeigt, wenn der Eingabewert kleiner als 0 oder größer als 1000 ist. |
Beispiel
EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE
(101);
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
DBMS_CLOUD-REST-API - Beispiele
Zeigt Beispiele mit DBMS_CLOUD.SEND_REQUEST
zum Erstellen und Löschen eines Oracle Cloud Infrastructure Object Storage-Buckets und ein Beispiel für eine Liste aller Compartments im Mandanten.
Diese Beispiele zeigen Oracle Cloud Infrastructure-Anforderungs-APIs und erfordern die Verwendung signaturschlüsselbasierter Zugangsdaten für credential_name
. Auf Oracle Cloud Infrastructure-Signaturschlüsseln basierende Zugangsdaten enthalten die Argumente private_key
und fingerprint
.
Beispiele:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Informationen zu DBMS_CLOUD.CREATE_CREDENTIAL
finden Sie unter Prozedur CREATE_CREDENTIAL.
Bucket erstellen - Beispiel
Zeigt ein Beispiel, das DBMS_CLOUD.SEND_REQUEST
mit der HTTP-Methode POST
verwendet, um einen Objektspeicher-Bucket mit dem Namen bucketname
zu erstellen.
Weitere Informationen zur Oracle Cloud Infrastructure Object Storage-Service-API für dieses Beispiel finden Sie unter CreateBucket.
SET SERVEROUTPUT ON
DECLARE
resp DBMS_CLOUD_TYPES.resp;
BEGIN
-- Send request
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
method => DBMS_CLOUD.METHOD_POST,
body => UTL_RAW.cast_to_raw(
JSON_OBJECT('name' value 'bucketname',
'compartmentId' value 'compartment_OCID'))
);
-- Response Body in TEXT format
dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_text(resp) || CHR(10));
-- Response Headers in JSON format
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
-- Response Status Code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_status_code(resp));
END;
/
Hinweise
-
In diesem Beispiel ist
namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace undbucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces. -
Dabei gilt:
region
ist eine Endpunktregion. Weitere Informationen finden Sie in der Object Storage-API-Referenz unter API-Referenz und -Endpunkte. Beispiel:region
ist :us-phoenix-1
.
Bucket löschen - Beispiel
Zeigt ein Beispiel, das die Methode DBMS_CLOUD.SEND_REQUEST
mit der HTTP-Methode DELETE
verwendet, um einen Objektspeicher-Bucket mit dem Namen bucketname
zu löschen.
Weitere Informationen zur Oracle Cloud Infrastructure Object Storage-Service-API für dieses Beispiel finden Sie unter DeleteBucket.
SET SERVEROUTPUT ON
DECLARE
resp DBMS_CLOUD_TYPES.resp;
BEGIN
-- Send request
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname',
method => DBMS_CLOUD.METHOD_DELETE
);
-- Response Body in TEXT format
dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_text(resp) || CHR(10));
-- Response Headers in JSON format
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
-- Response Status Code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
DBMS_CLOUD.get_response_status_code(resp));
END;
/
Hinweise
-
In diesem Beispiel ist
namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace undbucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces. -
Dabei gilt:
region
ist eine Endpunktregion. Weitere Informationen finden Sie in der Object Storage-API-Referenz unter API-Referenz und -Endpunkte. Beispiel:region
ist :us-phoenix-1
.
Compartments auflisten - Beispiel
Zeigt ein Beispiel, in dem mit DBMS_CLOUD.SEND_REQUEST
mit der HTTP-Methode GET
alle Compartments im Mandanten (root Compartment) aufgelistet werden. In diesem Beispiel wird gezeigt, wie Anforderungsheader in DBMS_CLOUD.SEND_REQUEST
übergeben werden.
Einzelheiten zur Oracle Cloud Infrastructure Identity and Access Management-Service-API für dieses Beispiel finden Sie unter ListCompartments.
--
-- List compartments
--
DECLARE
resp DBMS_CLOUD_TYPES.resp;
root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
-- Send request
dbms_output.put_line('Send Request');
resp := DBMS_CLOUD.send_request(
credential_name => 'OCI_KEY_CRED',
uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
method => DBMS_CLOUD.METHOD_GET,
headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
);
dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
dbms_output.put_line(CHR(10));
END;
/
Dabei gilt: region
ist eine Endpunktregion. Weitere Informationen finden Sie in der Identity and Access Management-(IAM-)API-Referenz unter API-Referenz und -Endpunkte. Angenommen, region
ist uk-london-1
.
Asynchrone Anforderung - Beispiel
Zeigt ein Beispiel, in dem mit DBMS_CLOUD.SEND_REQUEST
mit der HTTP-Methode POST
der Stoppvorgang in Autonomous Database ausgeführt und auf den Status gewartet wird. In diesem Beispiel wird gezeigt, wie Sie DBMS_CLOUD.SEND_REQUEST
mit den Parametern async_request_url
, wait_for_states
und timeout
verwenden.
--
-- Sent Work Request Autonomous Database Stop Request with Wait for Status
DECLARE
l_resp DBMS_CLOUD_TYPES.resp;
l_resp_json JSON_OBJECT_T;
l_key_shape JSON_OBJECT_T;
l_body JSON_OBJECT_T;
status_array DBMS_CLOUD_TYPES.wait_for_states_t;
BEGIN
status_array := DBMS_CLOUD_TYPES.wait_for_states_t('SUCCEEDED');
l_body := JSON_OBJECT_T('{}');
l_body.put('autonomousDatabaseId', 'ocid');
-- Send request
dbms_output.put_line(l_body.to_clob);
dbms_output.put_line('Send Request');
l_resp := DBMS_CLOUD.send_request(
credential_name => 'NATIVE_CRED_OCI',
uri => 'https://database.region.oraclecloud.com/20160918/autonomousDatabases/ocid/actions/stop',
method => DBMS_CLOUD.METHOD_POST,
body => UTL_RAW.cast_to_raw(l_body.to_clob),
async_request_url => 'https://iaas.region.oraclecloud.com/20160918/workRequests',
wait_for_states => status_array,
timeout => 600
);
dbms_output.put_line('resp body: '||DBMS_CLOUD.get_response_text(l_resp));
dbms_output.put_line('resp headers: '||DBMS_CLOUD.get_response_headers(l_resp).to_clob);
END;
/
Dabei gilt: region
ist eine Endpunktregion. Weitere Informationen finden Sie in der Identity and Access Management-(IAM-)API-Referenz unter API-Referenz und -Endpunkte. Angenommen, region
ist uk-london-1
.
ocid
ist die Oracle Cloud Infrastructure-Ressourcen-ID. Weitere Informationen finden Sie unter Ressourcen-IDs.
Übergeordnetes Thema: REST-APIs für DBMS_CLOUD
Fußnoten
Fußnote 3: Die Unterstützung von Azure Cloud-REST-REST-API-Aufrufen ist auf die Domain "blob.windows.net" beschränkt.