Créer un répertoire

Pour créer des répertoires, utilisez la commande CREATE DIRECTORY de la base de données. Avec l'instruction CREATE DIRECTORY, vous spécifiez un chemin relatif pour le nouveau répertoire.

CREATE DIRECTORY crée l'objet de répertoire de base de données, ainsi que le répertoire du système de fichiers s'il n'existe pas déjà. Si le répertoire du système de fichiers existe déjà, CREATE DIRECTORY crée uniquement l'objet de répertoire de base de données. Par exemple, la commande suivante crée le répertoire de base de données nommé staging et le répertoire du système de fichiers stage :

CREATE DIRECTORY staging AS 'stage';

Vous pouvez également créer des sous-répertoires. Par exemple, la commande suivante crée l'objet de répertoire de base de données sales_staging et le répertoire du système de fichiers stage/sales :

CREATE DIRECTORY sales_staging AS 'stage/sales';

Lorsque vous créez des sous-répertoires, vous n'avez pas besoin de créer le répertoire initial du système de fichiers. Par exemple, dans l'exemple précédent, si le répertoire stage n'existe pas, la commande CREATE DIRECTORY crée les répertoires stage et stage/sales.

Pour ajouter un répertoire, vous devez disposer du privilège système CREATE ANY DIRECTORY. L'utilisateur ADMIN dispose du privilège système CREATE ANY DIRECTORY. L'utilisateur ADMIN peut accorder le privilège système CREATE ANY DIRECTORY à d'autres utilisateurs.

Pour plus d'informations, voir CREATE DIRECTORY dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai.

Note :

  • CREATE DIRECTORY crée l'objet de répertoire de base de données dans Autonomous Database et crée également le répertoire dans le système de fichiers.

  • Vous pouvez créer un répertoire dans le système de fichiers racine pour voir tous les fichiers à l'aide des commandes suivantes :

    CREATE OR REPLACE DIRECTORY ROOT_DIR AS '';

    Après avoir créé le répertoire ROOT_DIR, utilisez la commande suivante pour lister tous les fichiers :

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

    Pour exécuter DBMS_CLOUD.LIST_FILES avec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur les droits de lecture sur le répertoire. Voir Fonction LIST_FILES pour plus d'informations.

  • L'espace utilisé par les répertoires que vous créez et leur contenu fait partie de l'affectation de stockage de données de votre base de données.