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.