Carregar um Arquivo JSON de Documentos Delimitados por Linha para uma Coleção

Para carregar dados de coleções na Nuvem, primeiro você deve armazenar suas credenciais de armazenamento de objetos no seu Autonomous Database e, em seguida, usar o procedimento DBMS_CLOUD.COPY_COLLECTION para carregar documentos em uma coleção.

Este exemplo carrega valores JSON de um arquivo delimitado por linha e usa o arquivo JSON myCollection.json. Cada valor, cada linha, é carregado em uma coleção no seu banco de dados como um único documento.

Veja um exemplo de tal arquivo. Ele tem três linhas, com um objeto por linha. Cada um desses objetos é carregado como um documento JSON separado.

{ "name" : "apple", "count": 20 }
{ "name" : "orange", "count": 42 }
{ "name" : "pear", "count": 10 }

Antes de carregar os dados de myCollection.json no seu banco de dados, copie o arquivo para o armazenamento de objetos:

  • Crie um bucket no armazenamento de objetos. Por exemplo, crie um bucket do Oracle Cloud Infrastructure Object Storage no link do Oracle Cloud Infrastructure Object Storage e, em seguida, no compartimento selecionado, clique em Criar Bucket ou use um comando como o seguinte comando da CLI do OCI para criar um bucket:

    oci os bucket create --name fruit_bucket -c <compartment id>
  • Copie o arquivo JSON para seu bucket de armazenamento de objetos. Por exemplo, use o seguinte comando da CLI do OCI para copiar o arquivo JSON para o fruit_bucket no Oracle Cloud Infrastructure Object Storage:

    
    oci os object put --bucket-name fruit_bucket \
                      --file "myCollection.json"

Carregue o arquivo JSON do armazenamento de objetos em uma coleção chamada fruit no seu banco de dados da seguinte forma:

  1. Armazene suas credenciais do armazenamento de objetos usando o procedimento DBMS_CLOUD.CREATE_CREDENTIAL, conforme mostrado no seguinte exemplo:
    SET DEFINE OFF
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password'
      );
    END;
    /

    Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial. Observe que essa etapa só é necessária uma vez, a menos que suas credenciais do armazenamento de objetos sejam alteradas. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para carregar todos os documentos.

    Não será necessário criar uma credencial para acessar o Oracle Cloud Infrastructure Object Store se você ativar as credenciais do controlador de recursos. Consulte Usar o Controlador de Recursos para Acessar Recursos da Oracle Cloud Infrastructure para obter mais informações.

    Consulte CREATE_CREDENTIAL Procedure para obter informações detalhadas sobre os parâmetros.

    Observação

    Algumas ferramentas, como o SQL*Plus e o SQL Developer, usam o caractere E comercial (&) como um caractere especial. Se você tiver o caractere E comercial em sua senha, use o comando SET DEFINE OFF nessas ferramentas, conforme mostrado no exemplo, para desativar o caractere especial e obter a credencial criada corretamente.
  2. Carregue os dados em uma coleta usando o procedimento DBMS_CLOUD.COPY_COLLECTION.
    
    BEGIN  
     DBMS_CLOUD.COPY_COLLECTION(    
        collection_name => 'fruit',
        credential_name => 'DEF_CRED_NAME',
        file_uri_list   =>
          'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/fruit_bucket/o/myCollection.json',
        format          =>
          JSON_OBJECT('recorddelimiter' value '''\n''')  );
    END;
    /
    

    Os parâmetros são:

    • collection_name: é o nome da coleção de destino.

    • credential_name: é o nome da credencial criada na etapa anterior. O parâmetro credential_name deve estar de acordo com as convenções de nomeação de objetos da Oracle. Consulte Regras de Nomeação de Objeto de Banco de Dados para obter mais informações.

    • file_uri_list: é uma lista delimitada por vírgulas dos arquivos-fonte que você deseja carregar.

    • format: define as opções que você pode especificar para descrever o formato do arquivo do arquivo. As opções de formato characterset, compression, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays são suportadas ao carregar dados JSON. Qualquer outro formato especificado resultará em um erro.

      Se os dados em seus arquivos de origem forem criptografados, decriptografe os dados especificando o parâmetro format com a opção encryption. Consulte Descriptografar Dados Durante a Importação do Serviço Object Storage para obter mais informações sobre como decriptografar dados.

      Consulte DBMS_CLOUD Opções de Formato de Pacote para obter mais informações.

    Em que namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e fruit_bucket é o nome do bucket. Consulte Noções Básicas sobre Namespaces do Serviço Object Storage e Visão Geral do Serviço Object Storage para mais informações.

    Para obter informações detalhadas sobre os parâmetros, consulte ProcedimentoCOPY_COLLECTION.

    O conjunto fruit no seu banco de dados agora contém um documento para cada linha no arquivo myCollection.json.