Gestión de directorios

Autonomous Database on Dedicated Exadata Infrastructure proporciona la capacidad de crear directorios en la base de datos donde puede almacenar archivos, al igual que puede hacer en un sistema de archivos de sistema operativo. Esta capacidad para almacenar archivos es especialmente útil al exportar e importar datos.

Temas relacionados

Borrado de un directorio

Utilice el comando DROP DIRECTORY de la base de datos para borrar un objeto de directorio.

Por ejemplo, el siguiente comando borra el objeto de directorio de base de datos staging:

DROP DIRECTORY staging;

El comando DROP DIRECTORY no suprime los archivos del directorio. Si desea suprimir el directorio y los archivos del directorio, utilice primero el procedimiento DBMS_CLOUD.DELETE_FILE para suprimir los archivos. Consulte el Procedimiento DELETE_FILE para obtener más información.

Para borrar un directorio, debe tener el privilegio del sistema DROP ANY DIRECTORY. Al usuario ADMIN se le otorga el privilegio del sistema DROP ANY DIRECTORY. El usuario ADMIN puede otorgar el privilegio del sistema DROP ANY DIRECTORY a otros usuarios.

Consulte DROP DIRECTORY en Oracle Database 19c SQL Language Reference u Oracle Database 23ai SQL Language Reference para obtener más información.

Note:

  • Si solo desea borrar el directorio y no elimina los archivos del directorio, después de borrar el directorio, podrá ver todos los archivos del sistema de archivos, incluidos los archivos que estaban en el directorio que ha borrado, como se muestra a continuación:

    CREATE OR REPLACE DIRECTORY ROOT_DIR AS '';

    A continuación, muestre el contenido de ROOT_DIR con el siguiente comando:

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

    Para ejecutar DBMS_CLOUD.LIST_FILES con un usuario que no sea ADMIN, debe otorgar privilegios de lectura en el directorio a ese usuario. Consulte Función LIST_FILES para obtener más información.

  • El comando DROP DIRECTORY no elimina el directorio del sistema de archivos subyacente. Autonomous Database gestiona el directorio del sistema de archivos subyacente; los usuarios no eliminan el directorio del sistema de archivos.

Mostrar el contenido de un directorio

Utilice la función DBMS_CLOUD.LIST_FILES para mostrar el contenido de un directorio.

Por ejemplo, para mostrar el contenido del directorio stage, ejecute la siguiente consulta:

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

Para ejecutar DBMS_CLOUD.LIST_FILES con un usuario que no sea ADMIN, debe otorgar privilegios de lectura en el directorio a ese usuario. Consulte Función LIST_FILES para obtener más información.

Copia de archivos entre el almacenamiento de objetos en la nube y un directorio

Utilice el procedimiento DBMS_CLOUD.PUT_OBJECT para copiar un archivo de un directorio al almacenamiento de objetos en la nube. Utilice el procedimiento DBMS_CLOUD.GET_OBJECT para copiar un archivo del almacenamiento de objetos en la nube en un directorio.

Por ejemplo, para copiar un archivo del almacenamiento de objetos en la nube al directorio stage, ejecute el siguiente comando:

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;
/

En este ejemplo, object_uri es un URI de Swift de Oracle Cloud Infrastructure que especifica el archivo cwallet.sso en el cubo mybucket de la región us-phoenix-1. (idthydc0kinr es el espacio de nombres de almacenamiento de objetos en el que reside el cubo). Para obtener información sobre los formatos de URI soportados, consulte Formatos de URI de almacenamiento de objetos en la nube.

Para ejecutar DBMS_CLOUD.GET_OBJECT con un usuario que no sea ADMIN, debe otorgar privilegios de escritura en el directorio a ese usuario.

Para ejecutar DBMS_CLOUD.PUT_OBJECT con un usuario que no sea ADMIN, debe otorgar privilegios de lectura en el directorio a ese usuario.

Consulte Procedimiento GET_OBJECT y Procedimiento PUT_OBJECT para obtener más información.