Verzeichnisse verwalten

Mit Autonomous Database on Dedicated Exadata Infrastructure können Sie Verzeichnisse in der Datenbank erstellen, in denen Sie Dateien speichern können, ähnlich wie in einem BS-Dateisystem. Diese Möglichkeit zum Speichern von Dateien ist besonders beim Exportieren und Importieren von Daten hilfreich.

Verwandte Themen

Verzeichnis löschen

Mit dem Datenbankbefehl DROP DIRECTORY können Sie Verzeichnisobjekte löschen.

Beispiel: Der folgende Befehl löscht das Datenbankverzeichnisobjekt staging:

DROP DIRECTORY staging;

Der Befehl DROP DIRECTORY löscht keine Dateien im Verzeichnis. Wenn Sie das Verzeichnis und die Dateien im Verzeichnis löschen möchten, löschen Sie zuerst mit der Prozedur DBMS_CLOUD.DELETE_FILE die Dateien. Weitere Informationen finden Sie unter Prozedur DELETE_FILE.

Um ein Verzeichnis löschen zu können, benötigen Sie die Systemberechtigung DROP ANY DIRECTORY. Dem ADMIN-Benutzer wird die Systemberechtigung DROP ANY DIRECTORY erteilt. Der ADMIN-Benutzer kann anderen Benutzern die Systemberechtigung DROP ANY DIRECTORY erteilen.

Weitere Informationen finden Sie unter DROP DIRECTORY in der SQL-Sprachreferenz für Oracle Database 19c oder in der SQL-Sprachreferenz für Oracle Database 23ai.

Hinweis:

  • Wenn Sie nur das Verzeichnis löschen und die Dateien im Verzeichnis nicht entfernen möchten, können Sie nach dem Löschen des Verzeichnisses alle Dateien im Dateisystem einschließlich der im gelöschten Verzeichnis enthaltenen Dateien wie folgt anzeigen:

    CREATE OR REPLACE DIRECTORY ROOT_DIR AS '';

    Listen Sie dann den Inhalt von ROOT_DIR mit dem folgenden Befehl auf:

    SELECT * FROM DBMS_CLOUD.LIST_FILES('ROOT_DIR');

    Um DBMS_CLOUD.LIST_FILES mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen. Weitere Informationen finden Sie unter LIST_FILES-Funktion.

  • Der Befehl DROP DIRECTORY entfernt das zugrunde liegende Dateisystemverzeichnis nicht. Autonomous Database verwaltet das zugrunde liegende Dateisystemverzeichnis. Benutzer entfernen das Dateisystemverzeichnis nicht.

Inhalt eines Verzeichnisses auflisten

Mit der Funktion DBMS_CLOUD.LIST_FILES können Sie den Inhalt eines Verzeichnisses auflisten.

Beispiel: Um den Inhalt des Verzeichnisses stage aufzulisten, führen Sie die folgende Abfrage aus:

SELECT * FROM DBMS_CLOUD.LIST_FILES('STAGE');

Um DBMS_CLOUD.LIST_FILES mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen. Weitere Informationen finden Sie unter LIST_FILES-Funktion.

Dateien zwischen Cloud-Objektspeicher und einem Verzeichnis kopieren

Verwenden Sie die Prozedur DBMS_CLOUD.PUT_OBJECT, um eine Datei aus einem Verzeichnis in einen Cloud-Objektspeicher zu kopieren. Verwenden Sie die Prozedur DBMS_CLOUD.GET_OBJECT, um eine Datei aus dem Cloud-Objektspeicher in ein Verzeichnis zu kopieren.

Beispiel: Um eine Datei aus dem Cloud-Objektspeicher in das Verzeichnis stage zu kopieren, führen Sie den folgenden Befehl aus:

BEGIN
   DBMS_CLOUD.GET_OBJECT(
   credential_name => 'DEF_CRED_NAME',
   object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/cwallet.sso',
   directory_name => 'STAGE');
END;
/

In diesem Beispiel ist object_uri eine Oracle Cloud Infrastructure-Swift-URI, die die Datei cwallet.sso im Bucket mybucket in der Region us-phoenix-1 angibt. (idthydc0kinr ist der Objektspeicher-Namespace, in dem sich der Bucket befindet.) Informationen zu den unterstützten URI-Formaten finden Sie unter URI-Formate für Cloud-Objektspeicher.

Um DBMS_CLOUD.GET_OBJECT mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Schreibberechtigungen für das Verzeichnis erteilen.

Um DBMS_CLOUD.PUT_OBJECT mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer Leseberechtigungen für das Verzeichnis erteilen.

Weitere Informationen finden Sie unter GET_OBJECT-Prozedur und PUT_OBJECT-Prozedur.