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.