Carregar Dados de Diretórios no Autonomous Database

Como alternativa a um URI de local do 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 nos sistemas de arquivos de rede anexados.

Os procedimentos a seguir 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 procedimentos a seguir 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 arquivo ou usar uma lista separada por vírgulas de diretórios e nomes de arquivo. 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 nome do arquivo diferencia maiúsculas de minúsculas.

Quando você usa o parâmetro file_uri_list para especificar um diretório, não precisa incluir o parâmetro credential_name, mas precisa de 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 de test.csv no diretório local HR_DIR para a tabela HRDATA1.

Expressões regulares não são suportadas 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 curinga para vários caracteres, e o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo:'MY_DIR:*" ou 'MY_DIR:test?'

Para especificar vários diretórios, use uma lista separada por vírgulas de diretórios: 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 cotação (').

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 ao 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 DBMS_CLOUD Package Format Options 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.