Gerenciar Diretórios

O Autonomous AI Database on Dedicated Exadata Infrastructure oferece a você a capacidade de criar diretórios em seu banco de dados onde você pode armazenar arquivos, da mesma forma que pode fazer em um sistema de arquivos OS. Essa capacidade de armazenar arquivos é especialmente útil ao exportar e importar dados.

Eliminar um Diretório

Use o comando DROP DIRECTORY do banco de dados para eliminar um objeto de diretório.

Por exemplo, o comando a seguir elimina o objeto de diretório do banco de dados staging:

DROP DIRECTORY staging;

O comando DROP DIRECTORY não exclui arquivos no diretório. Se você quiser excluir o diretório e os arquivos do diretório, primeiro use o procedimento DBMS_CLOUD.DELETE_FILE para excluir os arquivos. Consulte Procedimento DELETE_FILE para obter mais informações.

Para eliminar um diretório, você deve ter o privilégio de sistema DROP ANY DIRECTORY. O usuário ADMIN recebe o privilégio do sistema DROP ANY DIRECTORY. O usuário ADMIN pode conceder o privilégio de sistema DROP ANY DIRECTORY a outros usuários.

Consulte DROP DIRECTORY no Oracle Database 19c SQL Language Reference ou Oracle Database 26ai SQL Language Reference para obter mais informações.

Observação:

CREATE OR REPLACE DIRECTORY ROOT_DIR AS '';

Em seguida, liste o conteúdo de ROOT_DIR com o seguinte comando:

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

Para executar DBMS_CLOUD.LIST_FILES com um usuário diferente de ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário. Para obter mais informações, consulte Função LIST_FILES.

Listar o Conteúdo de um Diretório

Use a função DBMS_CLOUD.LIST_FILES para listar o conteúdo de um diretório.

Por exemplo, para listar o conteúdo do diretório stage, execute a seguinte consulta:

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

Para executar DBMS_CLOUD.LIST_FILES com um usuário diferente de ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário. Para obter mais informações, consulte Função LIST_FILES.

Copiar Arquivos entre o Cloud Object Storage e um Diretório

Use o procedimento DBMS_CLOUD.PUT_OBJECT para copiar um arquivo de um diretório para o armazenamento de objetos na nuvem. Use o procedimento DBMS_CLOUD.GET_OBJECT para copiar um arquivo do armazenamento de objetos na nuvem para um diretório.

Por exemplo, para copiar um arquivo do armazenamento do objeto na nuvem para o diretório stage, execute o seguinte 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;
/

Neste exemplo, object_uri é um URI Swift do Oracle Cloud Infrastructure que especifica o arquivo cwallet.sso no bucket mybucket na região us-phoenix-1. (idthydc0kinr é o namespace do armazenamento de objetos no qual o bucket reside.) Para obter informações sobre os formatos de URI suportados, consulte Formatos de URI do Cloud Object Storage.

Para executar o DBMS_CLOUD.GET_OBJECT com um usuário diferente de ADMIN, você precisa conceder privilégios de gravação no diretório a esse usuário.

Para executar o DBMS_CLOUD.PUT_OBJECT com um usuário diferente de ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário.

Consulte Procedimento GET_OBJECT e Procedimento PUT_OBJECT para obter mais informações.

Tópicos Relacionados