Carregar Dados ou Consultar Dados de Arquivos em um Diretório

Você pode usar procedimentos DBMS_CLOUD para carregar dados de arquivos em um diretório, incluindo diretórios criados em sistemas de arquivos de rede anexados. Você também pode usar esses procedimentos para criar tabelas externas que podem ser usadas para consultar dados.

Os seguintes procedimentos DBMS_CLOUD suportam o carregamento de dados no banco de dados de um diretório:

  • DBMS_CLOUD.COPY_COLLECTION
  • DBMS_CLOUD.COPY_DATA

Além disso, os procedimentos DBMS_CLOUD a seguir suportam a criação de tabelas externas com base em dados em arquivos em um diretório.

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE
  • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

Dependendo do procedimento, use o parâmetro file_uri_list ou o parâmetro partitioning_clause para especificar arquivos em um ou mais diretórios.

Para carregar dados de um diretório, você não precisa incluir o parâmetro credential_name, mas precisa de privilégios de objeto READ no diretório.

Por exemplo, você pode carregar dados em uma tabela existente usando DBMS_CLOUD.COPY_DATA:

  1. Use um diretório existente, crie um diretório ou anexe um sistema de arquivos de rede para os arquivos de origem.

    Consulte Criar Diretório no Autonomous Database para obter informações sobre a criação de um diretório local na instância do Autonomous Database.

    Consulte Anexar Sistema de Arquivos de Rede ao Autonomous Database para obter informações sobre como anexar um sistema de arquivos de rede que contenha os dados que você deseja carregar.

  2. Carregue dados com um procedimento DBMS_CLOUD.

    Por exemplo:

    CREATE TABLE CHANNELS
       (channel_id CHAR(1),
        channel_desc VARCHAR2(20),
        channel_class VARCHAR2(20)
       );
    /
    
    BEGIN
     DBMS_CLOUD.COPY_DATA(
        table_name => 'CHANNELS',
        file_uri_list => 'MY_DIR:channels.txt',
        format => json_object('delimiter' value ',')
     );
    END;
    /
    

    Os parâmetros são:

    • table_name: é o nome da tabela de destino.

    • file_uri_list: é uma especificação de diretório e nomes de arquivo para os arquivos de origem que você deseja carregar.

      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.

      Consulte Carregar Dados de Diretórios no Autonomous Database para obter mais detalhes e um exemplo de especificação de arquivos em um diretório. Isso também mostra informações sobre como citar o nome do diretório para fazer com que o nome do diretório faça distinção entre maiúsculas e minúsculas e para obter informações sobre como usar curingas.

    • format: define as opções que você pode especificar para descrever o formato do arquivo de origem, incluindo se o arquivo é do tipo texto, ORC, Parquet ou Avro.

Consulte COPY_DATA Procedimento para obter mais informações.

Consulte Anexar Sistema de Arquivos de Rede ao Autonomous Database para obter informações sobre como anexar sistemas de arquivos de rede.