Gerenciar Diretórios
O Autonomous Database na Infraestrutura Dedicada do Exadata fornece a capacidade de criar diretórios em seu banco de dados, no qual você pode armazenar arquivos da mesma forma que pode fazer em um sistema de arquivos do sistema operacional. Essa capacidade de armazenar arquivos é especialmente útil ao exportar e importar dados.
Tópicos Relacionados
Eliminar um Diretório
Use o comando DROP DIRECTORY
do banco de dados para eliminar um objeto de diretório.
Por exemplo, o seguinte comando 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 de 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 em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações.
Observação:
-
Se você quiser apenas eliminar o diretório e não remover os arquivos do diretório, depois de eliminar o diretório, poderá exibir todos os arquivos do sistema de arquivos, incluindo os arquivos que estavam no diretório eliminado, da seguinte forma:
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 distinto 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. -
O comando
DROP DIRECTORY
não remove o diretório do sistema de arquivos subjacente. O Autonomous Database gerencia o diretório do sistema de arquivos subjacente; os usuários não removem o diretório do sistema de arquivos.
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 consulta a seguir:
SELECT * FROM DBMS_CLOUD.LIST_FILES
('STAGE');
Para executar DBMS_CLOUD.LIST_FILES
com um usuário distinto 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 de objetos 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 DBMS_CLOUD.GET_OBJECT
com um usuário que não seja ADMIN, você precisa conceder privilégios de gravação no diretório a esse usuário.
Para executar DBMS_CLOUD.PUT_OBJECT
com um usuário que não seja 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.