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.