Carregar Dados de Diretórios no Autonomous Database
Como alternativa a um URI de local de armazenamento de objetos, você pode especificar um diretório com procedimentos DBMS_CLOUD
para carregar ou descarregar dados de arquivos em um diretório local, incluindo diretórios criados em sistemas de arquivos de rede anexados.
Os seguintes procedimentos suportam a especificação de arquivos em um diretório com o parâmetro file_uri_list
:
DBMS_CLOUD.COPY_COLLECTION
DBMS_CLOUD.COPY_DATA
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
Os seguintes procedimentos suportam a especificação de arquivos em um diretório com o parâmetro partitioning_clause
:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é:'MY_DIR:filename.ext'
. Por padrão, o nome do diretório MY_DIR
é um objeto de banco de dados e não faz distinção entre maiúsculas e minúsculas. O arquivo faz distinção entre maiúsculas e minúsculas.
Quando você usa o parâmetro file_uri_list
para especificar um diretório, não é necessário incluir o parâmetro credential_name
, mas é necessário ter privilégios de objeto READ
no diretório.
Por exemplo, com uma chamada para DBMS_CLOUD.COPY_DATA
, use o parâmetro file_uri_list
para especificar arquivos em um diretório:
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name => 'HRDATA1',
file_uri_list => 'HR_DIR:test.csv',
format => JSON_OBJECT('type' value 'csv') );
END;
/
Este exemplo copia os dados do test.csv
no diretório local HR_DIR
para a tabela HRDATA1
.
Não há suporte para expressões regulares ao especificar os nomes de arquivo em um diretório. Você só pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como caractere curinga para vários caracteres e o caractere "?" pode ser usado como caractere curinga para um único caractere. Por exemplo:'MY_DIR:*"
ou 'MY_DIR:test?'
Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo:'MY_DIR1:*, MY_DIR2:test?'
Use aspas duplas para especificar um nome de diretório com distinção entre maiúsculas e minúsculas. Por exemplo:'"my_dir1":*, "my_dir2":Test?'
Para incluir um caractere de aspas, use duas aspas. Por exemplo:'MY_DIR:''filename.ext'
. Isso especifica que filename
começa com uma aspa ('
).
Consulte Anexar Sistema de Arquivos de Rede ao Autonomous Database para obter informações sobre como anexar sistemas de arquivos de rede.
Observações sobre o Uso de Diretórios com Procedimentos DBMS_CLOUD
Observe o seguinte quando você usar procedimentos DBMS_CLOUD
e especificar um diretório com o parâmetro file_uri_list
:
-
Opções de compactação para arquivos como GZIP não são suportadas para arquivos de diretório. Consulte a opção de formato
compression
em Opções de formato de pacote DBMS_CLOUD para obter mais informações. -
Caracteres especiais, como dois-pontos (:), aspas simples (') e vírgula (,) não são suportados no nome do diretório.
Tópico principal: Criando e Gerenciando Diretórios no Autonomous Database