Gestisci directory

Autonomous Database on Dedicated Exadata Infrastructure consente di creare directory nel database in cui è possibile memorizzare i file, proprio come si può fare in un file system del sistema operativo. Questa capacità di memorizzare i file è particolarmente utile quando si esportano e si importano dati.

Argomenti correlati

Eliminare una directory

Utilizzare il comando DROP DIRECTORY del database per eliminare un oggetto directory.

Ad esempio, il comando seguente elimina l'oggetto directory del database staging:

DROP DIRECTORY staging;

Il comando DROP DIRECTORY non elimina i file nella directory. Per eliminare la directory e i file nella directory, usare la procedura DBMS_CLOUD.DELETE_FILE per eliminare i file. Per ulteriori informazioni, vedere DELETE_FILE Procedura.

Per eliminare una directory, è necessario disporre del privilegio di sistema DROP ANY DIRECTORY. All'utente ADMIN viene concesso il privilegio di sistema DROP ANY DIRECTORY. L'utente ADMIN può concedere il privilegio di sistema DROP ANY DIRECTORY ad altri utenti.

Per ulteriori informazioni, vedere DROP DIRECTORY in Oracle Database 19c SQL Language Reference o Oracle Database 23ai SQL Language Reference.

Nota

  • Se si desidera solo eliminare la directory e non rimuovere i file nella directory, dopo aver eliminato la directory è possibile visualizzare tutti i file nel file system, compresi i file che si trovavano nella directory eliminata, come indicato di seguito.

    CREATE OR REPLACE DIRECTORY ROOT_DIR AS '';

    Elencare quindi il contenuto di ROOT_DIR con il comando seguente:

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

    Per eseguire DBMS_CLOUD.LIST_FILES con un utente diverso da ADMIN, è necessario concedere privilegi di lettura sulla directory a tale utente. Per ulteriori informazioni, vedere LIST_FILES Funzione.

  • Il comando DROP DIRECTORY non rimuove la directory del file system sottostante. L'Autonomous Database gestisce la directory del file system di base. Gli utenti non rimuovono la directory del file system.

Elenca il contenuto di una directory

Utilizzare la funzione DBMS_CLOUD.LIST_FILES per elencare i contenuti di una directory.

Ad esempio, per elencare i contenuti della directory stage, eseguire la query seguente:

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

Per eseguire DBMS_CLOUD.LIST_FILES con un utente diverso da ADMIN, è necessario concedere privilegi di lettura sulla directory a tale utente. Per ulteriori informazioni, vedere LIST_FILES Funzione.

Copia i file tra lo storage degli oggetti cloud e una directory

Utilizzare la procedura DBMS_CLOUD.PUT_OBJECT per copiare un file da una directory allo storage degli oggetti cloud. Utilizzare la procedura DBMS_CLOUD.GET_OBJECT per copiare un file dallo storage degli oggetti cloud in una directory.

Ad esempio, per copiare un file dallo storage degli oggetti cloud alla directory stage, eseguire il comando seguente:

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 questo esempio, object_uri è un URI Swift di Oracle Cloud Infrastructure che specifica il file cwallet.sso nel bucket mybucket nell'area us-phoenix-1. (idthydc0kinr è lo spazio di nomi dello storage degli oggetti in cui risiede il bucket). Per informazioni sui formati URI supportati, vedere Formati URI di storage degli oggetti cloud.

Per eseguire DBMS_CLOUD.GET_OBJECT con un utente diverso da ADMIN, è necessario concedere privilegi di scrittura sulla directory a tale utente.

Per eseguire DBMS_CLOUD.PUT_OBJECT con un utente diverso da ADMIN, è necessario concedere privilegi di lettura sulla directory a tale utente.

Per ulteriori informazioni, vedere GET_OBJECT Procedura e Procedura PUT_OBJECT.