Gestión de directorios

Autonomous AI Database on Dedicated Exadata Infrastructure le permite crear directorios en su base de datos donde puede almacenar archivos, al igual que puede hacer en el sistema. Esta capacidad para almacenar archivos es especialmente útil al exportar e importar datos.

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 del 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 de sistema DROP ANY DIRECTORY. El usuario ADMIN puede otorgar el privilegio de sistema DROP ANY DIRECTORY a otros usuarios.

Consulte DROP DIRECTORY en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información.

Nota:

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.

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 del objeto 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 bucket mybucket de la región us-phoenix-1. (idthydc0kinr es el espacio de nombres de almacenamiento de objetos en el que reside el bucket). 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 para la lectura en el directorio a ese usuario.

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

Temas relacionados