DBMS_CLOUD-URI-Formate
Beschreibt das Format der Quelldatei-URIs in Vorgängen mit DBMS_CLOUD. Das Format hängt vom verwendeten Objektspeicherservice ab.
DBMS_CLOUD garantiert eine sichere Kommunikation, und jede angegebene URI muss HTTPS verwenden, wobei https:// das Präfix für die URI ist.
Natives URI-Format von Oracle Cloud Infrastructure Object Storage
Wenn Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) gespeichert sind, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.
https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename Hinweis
Hinweis: Dedizierte Endpunkt-URLs für OCI Object Store werden nur in kommerziellen Realms (OC1) unterstützt.
Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage befinden und sich nicht in der kommerziellen Realm (OC1) befinden, müssen Sie das folgende Format verwenden:
https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filenameBeispiel: In der kommerziellen Realm (OC1) lautet die native URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix:
https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txtIn diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Sie können eine URI mit vordefinierten Platzhaltervariablen bereitstellen. Wenn die Anforderung gesendet wird, werden diese Variablen nahtlos aufgelöst und durch die entsprechenden Istwerte ersetzt. Die Liste der unterstützten Platzhalter in den Unterroutinen des Packages DBMS_CLOUD enthält Folgendes:
-
my$home_region: Gibt die Hauptregion Ihres Oracle Cloud Infrastructure-(OCI-)Mandanten an.Die Substitutionsvariable
my$home_regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$region: Gibt die Oracle Cloud Infrastructure-(OCI-)Region Ihrer autonomen KI-Datenbank an.Die Substitutionsvariable
my$regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$cloud_domain: Gibt den Oracle Cloud Infrastructure-(OCI-)Domainnamen für Ihre Oracle Cloud Infrastructure (OCI) an.Die Substitutionsvariable
my$cloud_domainwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$namespace: Gibt den Oracle Cloud Infrastructure-(OCI-)Object Storage-Namespace an.Die Substitutionsvariable
my$namespacewird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$compartment: Gibt die OCID des Compartments an.Die Substitutionsvariable
my$compartmentwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$tenancy: Gibt die OCID Ihres Mandanten an.Die Substitutionsvariable
my$tenancywird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten Beispiel:
-
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_nameDie URI finden Sie unter "Objektdetails" in Oracle Cloud Infrastructure Object Storage im Menü mit Auslassungspunkten auf der rechten Seite im Objektspeicher:
-
Öffnen Sie die Oracle Cloud Infrastructure-Konsole, indem Sie neben "Oracle Cloud" auf
klicken. -
Klicken Sie im linken Navigationsmenü von Oracle Cloud Infrastructure auf Coreinfrastruktur. Klicken Sie unter Object Storage auf Object Storage.
-
Wählen Sie unter "Listengeltungsbereich" ein Compartment.
-
Wählen Sie in der Spalte Name einen Bucket aus.
-
Klicken Sie im Bereich "Objekte" auf Objektdetails anzeigen.

-
Auf der Seite Objektdetails wird im Feld URL-Pfad (URI) die URI für den Zugriff auf das Objekt angezeigt.
Hinweis
Hinweis: Die Quelldateien müssen in einem Object Storage-Tier-Bucket gespeichert werden. Die autonome AI-Datenbank unterstützt keine Buckets in der Archive Storage-Ebene. Weitere Informationen finden Sie unter Überblick über Object Storage.
Oracle Cloud Infrastructure Object Storage - Swift-URI-Format
Wenn Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) gespeichert sind, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.
https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1namespace-stringbucket/filename Hinweis
Hinweis: Dedizierte Endpunkt-URLs für OCI Object Store werden nur in den kommerziellen Realms (OC1) unterstützt.
Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage befinden und sich nicht in der kommerziellen Realm (OC1) befinden, müssen Sie das folgende Format verwenden:
https://swiftobjectstorage.region.oraclecloud.com/v1namespace-stringbucket/filenameBeispiel: In der kommerziellen Realm (OC1) lautet die Swift-URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix:
https://namespace-string.swiftobjectstorage.us-phoenix-
1.oci.customer-oci.com/v1namespace-stringbucketname/channels.txtIn diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Hinweis
Hinweis: Die Quelldateien müssen in einem Object Storage-Tier-Bucket gespeichert werden. Die autonome AI-Datenbank unterstützt keine Buckets in der Archive Storage-Ebene. Weitere Informationen finden Sie unter Überblick über Object Storage.
Die angegebene URI kann auch vordefinierte Platzhaltervariablen enthalten. Wenn die Anforderung gesendet wird, werden diese Variablen durch die entsprechenden Istwerte ersetzt. Folgende Platzhalter werden in der autonomen KI-Datenbank unterstützt:
-
my$home_region: Gibt die Hauptregion Ihres Oracle Cloud Infrastructure-(OCI-)Mandanten an.Die Substitutionsvariable
my$home_regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$region: Gibt die Oracle Cloud Infrastructure-(OCI-)Region Ihrer autonomen KI-Datenbank an.Die Substitutionsvariable
my$regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$cloud_domain: Gibt den Oracle Cloud Infrastructure-(OCI-)Domainnamen für Ihre Oracle Cloud Infrastructure (OCI) an.Die Substitutionsvariable
my$cloud_domainwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$namespace: Gibt den Oracle Cloud Infrastructure-(OCI-)Object Storage-Namespace an.Die Substitutionsvariable
my$namespacewird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$compartment: Gibt die OCID des Compartments an.Die Substitutionsvariable
my$compartmentwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$tenancy: Gibt die OCID Ihres Mandanten an.Die Substitutionsvariable
my$tenancywird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
Oracle Cloud Infrastructure Object Storage-URI-Format mit vorab authentifizierter Anforderungs-URL
Wenn Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage gespeichert sind, können Sie vorab authentifizierte Oracle Cloud Infrastructure-URIs verwenden. Wenn Sie eine vorab authentifizierte Anforderung erstellen, wird eine eindeutige URL generiert. Anschließend können Sie Benutzern in Ihrer Organisation, Partnern oder Dritten die eindeutige URL für den Zugriff auf das in der vorab authentifizierten Anforderung angegebene Object Storage-Ressourcenziel bereitstellen.
Hinweis
Hinweis: Bewerten Sie die Geschäftsanforderung und die Sicherheitsauswirkungen des vorab authentifizierten Zugriffs sorgfältig. Wenn Sie die URL der vorab authentifizierten Anforderung erstellen, beachten Sie den Ablauf und den Zugriffstyp, um sicherzustellen, dass sie für Ihre Verwendung geeignet sind. Über eine vorab authentifizierte Anforderungs-URL erhält jeder, der über die URL verfügt, Zugriff auf die in der Anforderung angegebenen Ziele, solange die Anforderung aktiv ist. Neben der Berücksichtigung der betrieblichen Anforderungen des vorab authentifizierten Zugriffs ist es ebenso wichtig, seine Verteilung zu verwalten.
Wenn Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) gespeichert sind, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.
https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename Hinweis
Hinweis: Dedizierte Endpunkt-URLs für OCI Object Store werden nur in den kommerziellen Realms (OC1) unterstützt.
Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage befinden und sich nicht in der kommerziellen Realm (OC1) befinden, müssen Sie das folgende Format verwenden:
https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filenameBeispiel: In der kommerziellen Realm (OC1) ist eine im Voraus authentifizierte URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix wie folgt:
https://namespace-string.objectstorage.us-phoenix-
1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txtIn diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Sie können eine vorab authentifizierte URL in jeder DBMS_CLOUD-Prozedur verwenden, die eine URL für den Zugriff auf Dateien im Oracle Cloud Infrastructure-Objektspeicher verwendet, ohne Zugangsdaten erstellen zu müssen. Sie müssen den Parameter credential_name entweder als NULL angeben oder keinen Parameter credential_name angeben.
Beispiel:
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/p/unique-pre-authenticated-string/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',') );
END;
/ Hinweis
Hinweis: Eine Liste mit gemischten URLs ist gültig. Wenn die URL-Liste sowohl vorab authentifizierte URLs als auch URLs enthält, die eine Authentifizierung erfordern, verwendet DBMS_CLOUD die angegebene credential_name, um auf die URLs zuzugreifen, die eine Authentifizierung erfordern, und für die vorab authentifizierten URLs wird die angegebene credential_name ignoriert.
Weitere Informationen finden Sie unter Vorab authentifizierte Anforderungen verwenden.
Sie können eine URI mit vordefinierten Platzhaltervariablen bereitstellen. Wenn die Anforderung gesendet wird, werden diese Variablen durch die entsprechenden Istwerte ersetzt. Die Liste der unterstützten Platzhalter in den Unterroutinen des Packages DBMS_CLOUD enthält Folgendes:
-
my$home_region: Gibt die Hauptregion Ihres Oracle Cloud Infrastructure-(OCI-)Mandanten an.Die Substitutionsvariable
my$home_regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$region: Gibt die Oracle Cloud Infrastructure-(OCI-)Region Ihrer autonomen KI-Datenbank an.Die Substitutionsvariable
my$regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$cloud_domain: Gibt den Oracle Cloud Infrastructure-(OCI-)Domainnamen für Ihre Oracle Cloud Infrastructure (OCI) an.Die Substitutionsvariable
my$cloud_domainwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$namespace: Gibt den Oracle Cloud Infrastructure-(OCI-)Object Storage-Namespace an.Die Substitutionsvariable
my$namespacewird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$compartment: Gibt die OCID des Compartments an.Die Substitutionsvariable
my$compartmentwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$tenancy: Gibt die OCID Ihres Mandanten an.Die Substitutionsvariable
my$tenancywird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
Beispiel:
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_nameURI-Format mit öffentlicher URL
Wenn sich Ihre Quelldateien in einem Objektspeicher befinden, der öffentliche URLs bereitstellt, können Sie öffentliche URLs mit DBMS_CLOUD-Prozeduren verwenden. "Öffentlich" bedeutet, dass der Object Storage-Service anonymen, nicht authentifizierten Zugriff auf die Objektspeicherdateien unterstützt. Details dazu, wie Sie ein Objekt in einem unterstützten Objektspeicher öffentlich machen, finden Sie in Ihrem Cloud Object Storage-Service.
Hinweis
Hinweis: Bewerten Sie die Geschäftsanforderungen und die Sicherheitsauswirkungen bei der Verwendung öffentlicher URLs sorgfältig. Wenn Sie öffentliche URLs verwenden, da der Dateiinhalt nicht authentifiziert wird, stellen Sie sicher, dass dies für Ihre Verwendung geeignet ist.
Sie können eine öffentliche URL in jeder DBMS_CLOUD-Prozedur verwenden, die eine URL für den Zugriff auf Dateien in Ihrem Objektspeicher verwendet, ohne dass Zugangsdaten erstellt werden müssen. Sie müssen den Parameter credential_name entweder als NULL angeben oder keinen Parameter credential_name angeben.
Beispiel: Im Folgenden wird DBMS_CLOUD.COPY_DATA ohne credential_name verwendet:
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
file_uri_list =>'https://objectstorage.us-ashburn-
1.oraclecloud.com/n/namespace-string/b/bucketname/o/chan_v3.dat',
format => json_object('delimiter' value ',') );
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.
Hinweis
Hinweis: Eine Liste mit gemischten URLs ist gültig. Wenn die URL-Liste sowohl öffentliche URLs als auch URLs enthält, die eine Authentifizierung erfordern, verwendet DBMS_CLOUD die angegebene credential_name, um auf die URLs zuzugreifen, die eine Authentifizierung erfordern, und für die öffentlichen URLs wird die angegebene credential_name ignoriert.
Informationen zur Verwendung öffentlicher Oracle Cloud Infrastructure-Buckets finden Sie unter Öffentliche Buckets.
Sie können eine URI mit vordefinierten Platzhaltervariablen bereitstellen. Wenn die Anforderung gesendet wird, werden diese Variablen durch die entsprechenden Istwerte ersetzt. Die Liste der unterstützten Platzhalter in den Unterroutinen des Packages DBMS_CLOUD enthält Folgendes:
-
my$home_region: Gibt die Hauptregion Ihres Oracle Cloud Infrastructure-(OCI-)Mandanten an.Die Substitutionsvariable
my$home_regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$region: Gibt die Oracle Cloud Infrastructure-(OCI-)Region Ihrer autonomen KI-Datenbank an.Die Substitutionsvariable
my$regionwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$cloud_domain: Gibt den Oracle Cloud Infrastructure-(OCI-)Domainnamen für Ihre Oracle Cloud Infrastructure (OCI) an.Die Substitutionsvariable
my$cloud_domainwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$namespace: Gibt den Oracle Cloud Infrastructure-(OCI-)Object Storage-Namespace an.Die Substitutionsvariable
my$namespacewird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
-
my$compartment: Gibt die OCID des Compartments an.Die Substitutionsvariable
my$compartmentwird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten
-
-
my$tenancy: Gibt die OCID Ihres Mandanten an.Die Substitutionsvariable
my$tenancywird nur mit den folgenden Zugangsdatentypen unterstützt:-
OCI-API-Signaturschlüssel
-
OCI-Ressourcen-Principal
-
Authentifizierungstoken/Swift-Zugangsdaten Beispiel:
-
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_nameURI-Format für Oracle Cloud Infrastructure Object Storage
Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage Classic befinden, finden Sie auf der REST-Seite eine Beschreibung des URI-Formats für den Zugriff auf die Dateien: REST-URLs für Oracle Cloud Infrastructure Object Storage Classic-Ressourcen.
Substitutionsvariablen in Oracle Cloud Infrastructure-(OCI-)URLs
Sie können vordefinierte Substitutionsvariablen in Ihren Oracle Cloud Infrastructure-(OCI-)URLs angeben, wenn Sie eine URI für den Parameter object_uri für die DBMS_CLOUD-Prozeduren und -Funktionen angeben.
Diese Substitutionsvariablen sind vordefinierte Platzhalter wie my$home_region und my$tenancy, die basierend auf dem Laufzeitkontext Ihrer autonomen KI-Datenbank aufgelöst und durch die entsprechenden tatsächlichen Werte ersetzt werden. Die umgebungsspezifischen Werte, wie Mandanten-OCID oder Namespace, sind nicht hartcodiert, sodass der SQL-Code dynamisch und portierbar ist und in mehreren Regionen (für OCI-REST-APIs) bereitgestellt werden kann.
Die Verwendung von Substitutionsvariablen in OCI-URLs bietet folgende Vorteile:
-
SQL-Code ist weniger fehleranfällig, da Substitutionsvariablen keine hartcodierten Werte bereitstellen müssen. Dies ist besonders nützlich, wenn lange Bezeichner verwendet werden.
-
SQL-Code ist portierbar und nicht regionsspezifisch oder umgebungsspezifisch. Derselbe SQL-Code kann für OCI-REST-APIs über mehrere Regionen hinweg wiederverwendet und bereitgestellt werden, ohne dass die aktuelle Region identifiziert werden muss.
-
Regionsübergreifendes Failover für autonome KI-Datenbank mit OCI-REST-APIs ist praktisch und weniger fehleranfällig.
In der folgenden Tabelle sind die einzelnen Substitutionsvariablen sowie der entsprechende unterstützte Zugangsdatentyp und ein Beispielwert aufgeführt:
| Parametername | Beschreibung | Unterstützte Zugangsdatentypen | Beispielwert |
|---|---|---|---|
my$home_region |
Gibt die Hauptregion Ihres Oracle Cloud Infrastructure-(OCI-)Mandanten an. |
|
us-ashburn-1 |
my$region |
Gibt die Oracle Cloud Infrastructure-(OCI-)Region Ihrer autonomen KI-Datenbank an. |
|
us-phoenix-1 |
my$cloud_domain |
Gibt den Oracle Cloud Infrastructure-(OCI-)Domainnamen für Ihre Oracle Cloud Infrastructure (OCI) an. |
|
oraclecloud.com |
my$namespace |
Gibt den Oracle Cloud Infrastructure-(OCI-)Object Storage-Namespace an. |
|
yzsfanzztmfw |
my$compartment |
Gibt die OCID Ihres Compartments an. |
|
ocid1.compartment.oc1..aaacdddddeeeffffffff123456 |
my$tenancy |
Gibt die OCID Ihres Mandanten an. |
|
ocid1.tenancy.oc1..aaaaddddddeeeeeeeeffffffff123678 |
Beispiel für den Zugriff auf eine Object Storage-Datei mit vordefinierten Substitutionsvariablen:
SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
credential_name => credential_name,
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name))
FROM DUAL;Beispiel für den Zugriff auf die OCI-Kostenberichtsdatei mit vordefinierten Substitutionsvariablen:
SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
credential_name => credential_name,
object_uri => 'https://objectstorage.my$home_region.my$cloud_domain/n/namespace-string/b/my$tenancy/o/reports/cost-csv/file_name.csv.gz',
compression => DBMS_CLOUD.COMPRESS_GZIP))
FROM DUAL;Amazon S3-URI-Format
Wenn Ihre Quelldateien in Amazon S3 gespeichert sind, finden Sie im Folgenden eine Beschreibung des URI-Formats für den Zugriff auf Ihre Dateien: Auf einen Bucket zugreifen.
Beispiel: Das Folgende bezieht sich auf die Datei channels.txt im Bucket adb in der Region us-west-2.
https://s3-us-west-2.amazonaws.com/adb/channels.txtSie können eine vorgeschriebene URL in jeder DBMS_CLOUD-Prozedur verwenden, die eine URL für den Zugriff auf Dateien im Amazon S3-Objektspeicher verwendet, ohne dass Zugangsdaten erstellt werden müssen. Um eine vorgeschriebene URL in einer beliebigen DBMS_CLOUD-Prozedur zu verwenden, geben Sie entweder den Parameter credential_name als NULL an, oder geben Sie keinen Parameter credential_name an.
Weitere Informationen finden Sie unter Objekt gemeinsam mit anderen verwenden.
Hinweis
Hinweis: DBMS_CLOUD unterstützt die standardmäßige Amazon S3-Endpunktsyntax für den Zugriff auf Ihre Buckets. DBMS_CLOUD unterstützt keine Legacy-Endpunkte von Amazon S3. Weitere Informationen finden Sie unter Legacy-Endpunkte.
Azure Blob Storage oder Azure Data Lake Storage-URI-Format
Wenn sich Ihre Quelldateien in Azure Blob Storage oder Azure Data Lake Storage befinden, finden Sie im Folgenden eine Beschreibung des URI-Formats für den Zugriff auf Ihre Dateien: Resource URI Syntax.
Beispiel: Das Folgende bezieht sich auf die Datei channels.txt im Container adb im Speicheraccount adb_user:
https://adb_user.blob.core.windows.net/adb/channels.txt Hinweis
Hinweis: Sie können die Shared Access Signatures-(SAS-)URL in jeder DBMS_CLOUD-Prozedur verwenden, die eine URL für den Zugriff auf Dateien in Azure Blob Storage oder Azure Data Lake Storage verwendet, ohne dass Zugangsdaten erstellt werden müssen. Um eine Shared Access Signature-(SAS-)URL zu verwenden, geben Sie entweder den Parameter credential_name als NULL an, oder geben Sie keinen Parameter credential_name an. Weitere Informationen finden Sie unter Begrenzten Zugriff auf Azure-Speicherressourcen mit Shared Access-Signaturen (SAS) erteilen.
Amazon S3-kompatibles URI-Format
DBMS_CLOUD unterstützt Objektspeicherserviceimplementierungen, die mit Amazon S3 kompatible URLs unterstützen, einschließlich der folgenden Services:
-
Oracle Cloud Infrastructure Object Storage mit Amazon S3-kompatibler URL
-
Google Cloud Storage mit Amazon S3-kompatibler URL
-
Wasabi Hot Cloud Storage mit Amazon S3-kompatibler URL
Hinweis
Hinweis: Um DBMS_CLOUD mit einem mit Amazon S3 kompatiblen Objektspeicher zu verwenden, müssen Sie gültige Zugangsdaten angeben. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
Wenn sich Ihre Quelldateien in einem Service befinden, der mit Amazon S3 kompatible URIs unterstützt, verwenden Sie das folgende URI-Format für den Zugriff auf Ihre Dateien:
-
Oracle Cloud Infrastructure Object Storage S3-kompatible URL
Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, die unten aufgeführten Objekt-URL- und Bucket-URL-Formate für die kommerzielle Realm (OC1) zu verwenden. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.
Hinweis
Hinweis: Dedizierte Endpunkt-URLs für OCI Object Store werden nur in den kommerziellen Realms (OC1) unterstützt.Objekt-URL-Formate
- nur in der kommerziellen Realm (OC1) unterstützt:
https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name-
In allen Zonen unterstützt:
https://*mynamespace*.*compat.objectstorage*.*region*.oraclecloud.com/bucket_name/*object_name*
Bucket-URL-Formate:
-
nur in der kommerziellen Realm (OC1) unterstützt:
https://*mynamespace*.*compat.objectstorage*.*region*.oci.customer-oci.com/bucket_name -
In allen Zonen unterstützt:
https://*mynamespace*.*compat.objectstorage*.*region*.oraclecloud.com/bucket_name
Weitere Informationen finden Sie unter Amazon S3-Kompatibilität und Object Storage-Service-API.
-
Google Cloud Storage S3-kompatible URL
Objekt-URL-Format:
https://bucketname.storage.googleapis.com/object_nameBucket-URL-Format:
https://bucketname.storage.googleapis.com/Weitere Informationen finden Sie unter Von Amazon S3 zu Cloud Storage migrieren und Anforderungsendpunkte.
-
Wasabi S3-kompatible URL
Objekt-URL-Format:
https://bucketname.s 3.region.wasabisys.com/object_nameBucket-URL-Format:
https://bucketname.s3.region.wasabisys.com/Weitere Informationen finden Sie unter Wasabi S3-API-Referenz und Service-URLs für Wasabi-Speicherregionen.
GitHub Raw-URL-Format
DBMS_CLOUD unterstützt GitHub-Raw-URLs für den Zugriff auf Daten aus einem GitHub-Repository.
Hinweis
Hinweis: Für den DBMS_CLOUD-Zugriff mit GitHub-Raw-URLs ist der Repository-Zugriff auf schreibgeschützte Funktionen beschränkt. Die DBMS_CLOUD-APIs wie DBMS_CLOUD.PUT_OBJECT, die Daten schreiben, werden mit DBMS_CLOUD-APIs in einem GitHub-Repository nicht unterstützt. Alternativ können Sie DBMS_CLOUD_REPO.PUT_FILE verwenden, um Daten in ein GitHub-Repository hochzuladen.
Verwenden Sie GitHub Raw-URLs mit DBMS_CLOUD-APIs, um auf Quelldateien zuzugreifen, die sich in einem GitHub-Repository befinden. Wenn Sie zu einer Datei auf GitHub navigieren und auf den Link Raw klicken, wird die Raw-URL von GitHub angezeigt. Die Domain raw.githubusercontent.com stellt unverarbeitete Versionen von Dateien bereit, die in GitHub-Repositorys gespeichert sind.
Beispiel: Verwenden Sie DBMS_CLOUD.GET_OBJECT:
BEGIN
DBMS_CLOUD.GET_OBJECT(
credential_name => 'MY_CRED',
object_uri => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/adb-loading.csv',
directory_name => 'DATA_PUMP_DIR'
);
END;
/Beispiel: Verwenden Sie DBMS_CLOUD.CREATE_EXTERNAL_TABLE:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
credential_name => 'MY_CRED',
table_name => 'EMPLOYEES_EXT',
file_uri_list => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/*.csv',
column_list => 'name varchar2(30), gender varchar2(30), salary number',
format => JSON_OBJECT('type' value 'csv')
);
END;
/
SELECT * FROM employees_ext;Für DBMS_CLOUD-Prozeduren, die eine URL für den Zugriff auf ein GitHub-Repository verwenden, sind keine Zugangsdaten mit öffentlichen Sichtbarkeits-GitHub-Repositorys erforderlich. Um eine öffentliche Sichtbarkeits-URL zu verwenden, können Sie den Parameter credential_name als NULL angeben oder keinen Parameter credential_name angeben. Weitere Informationen finden Sie unter Sichtbarkeit von Repositorys festlegen.
Zusätzliche vom Kunden verwaltete URI-Formate
Zusätzlich zu der vorkonfigurierten, erkannten URIs mit ihren vollqualifizierten Domainnamen (FQDNs) kann DBMS_CLOUD das richtige Authentifizierungsschema für vom Kunden verwaltete Endpunkte URIs nicht bestimmen. In diesen Fällen verlässt sich DBMS_CLOUD auf das richtige URI-Schema, um das Authentifizierungsschema für den vom Kunden verwalteten Endpunkt zu identifizieren.
| URI-Schema | Authentifizierungstyp | Beschreibung der Zugriffsmethode | URI-Beispiel |
|---|---|---|---|
| Basis:// | Basisauthentifizierung | Benutzername und Kennwort, die im Datenbankzugangsdatenobjekt gespeichert sind, werden zur Authentifizierung der HTTP-Anforderung verwendet | basic://api.github.com/users/myaccount |
| Bearer:// | Bearer-Tokenauthentifizierung | Bearer-Token, das im Kennwortfeld im Datenbankzugangsdatenobjekt gespeichert ist, wird verwendet, um den Autorisierungsheader für die HTTP-Anforderung anzugeben | bearer://api.sendgrid.com/v3/resource |
| OCI:// | OCI-nativ | OCI-Signaturschlüssel, der aus dem gespeicherten Datenbankzugangsdatenobjekt abgerufen und zum Signieren von Anforderungen mit dem OCI-Authentifizierungsprotokoll verwendet wird | oci://objectstorage.us-ashburn-1.oraclecloud.com |
| public:// | Keine Authentisierung | Öffentliche URLs | public://cms.data.gov/ |
| s3:// | Amazon Web Services S3-kompatibel | Zugriffsschlüssel und Secret Key, die aus dem Feld "Benutzername/Kennwort" des Datenbankzugangsdatenobjekts abgerufen werden, und S3-kompatible Authentifizierung, die für die HTTP-Anforderung ausgeführt wird. | s3://bucket.myprivatesite.com/file1.csv |
Beispiele:
Vom Kunden verwalteter Endpunkt mit S3-kompatibler Authentifizierung.
Dieses Beispiel zeigt, wie Kunden bei der neuen URIs das öffentliche oder private Hostnamensmuster mit dem Package DBMS_NETWORK_ACL_ADMIN hinzufügen können. Der Codeblock, der von Benutzer ADMIN ausgeführt wird, ermöglicht HTTPS-Zugriff für Benutzer SCOTT auf Endpunkte in Domain *.myprivatesite.com. Anschließend wird gezeigt, wie der Benutzer SCOTT auf den neu aktivierten Endpunkt zugreift. Beachten Sie, dass die Zugangsdaten MY_CRED für den Benutzer SCOTT den Zugriffsschlüssel und den Secret Key für die S3-kompatible Authentifizierung speichern müssen, die für die HTTP-Anforderung ausgeführt wird, die mit dem Präfix URI angegeben wird.
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*.myprivatesite.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'SCOTT',
principal_type => xs_acl.ptype_db),
private_target => TRUE );
END;
/
BEGIN
DBMS_CLOUD.get_object(
credential_name => 'MY_CRED',
object_uri => 's3://bucket.myprivatesite.com/file1.csv',
directory_name => 'MY_DIR' );
END;
/Vom Kunden verwalteter Endpunkt mit öffentlichem Zugriff
In diesem Beispiel wird gezeigt, wie Sie den Benutzer SCOTT registrieren, um auf öffentliche REST-APIs zuzugreifen. Der Benutzer ADMIN erstellt eine Netzwerk-ACL, damit der Host Zugriff auf den Benutzer SCOTT erteilt.
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'data.cms.gov',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'SCOTT',
principal_type => xs_acl.ptype_db)
);
END;
/
SELECT DBMS_CLOUD.get_response_text(
DBMS_CLOUD.send_request(
uri => 'public://data.cms.gov/provider-data/api/1/datastore/imports/a',
method => DBMS_CLOUD.METHOD_GET,
headers => JSON_OBJECT('Accept' VALUE 'application/json')
)
)
FROM DUAL;
/