Criar credenciais e copiar dados JSON para uma tabela existente

Use o DBMS_CLOUD.COPY_DATA para carregar dados JSON na nuvem em uma tabela.

O arquivo de origem do exemplo é um arquivo de dados JSON.

  1. Armazene suas credenciais de armazenamento de objetos usando o procedimento DBMS_CLOUD.CREATE_CREDENTIAL. Por 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 todos os carregamentos de dados.

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

    A criação de uma credencial para acessar o Oracle Cloud Infrastructure Object Store não será necessária se você ativar as credenciais do controlador de recursos. Para obter mais informações, consulte Usar o Controlador de Recursos para Acessar Recursos do Oracle Cloud Infrastructure.

  2. Carregue dados JSON para uma tabela existente usando o procedimento DBMS_CLOUD.COPY_DATA.

    Por exemplo:

    CREATE TABLE WEATHER2
        (WEATHER_STATION_ID VARCHAR2(20),
         WEATHER_STATION_NAME VARCHAR2(50));
    / 
    
    BEGIN 
      DBMS_CLOUD.COPY_DATA(
          table_name      => 'WEATHER2',
          credential_name => 'DEF_CRED_NAME',
          file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/jsonfiles*',
          format          =>  JSON_OBJECT('type' value 'json', 'columnpath' value '["$.WEATHER_STATION_ID",
              "$.WEATHER_STATION_NAME"]')
        );
    END;
    / 
    

    Os parâmetros são:

    • table_name: é o nome da tabela de destino.

    • credential_name: é o nome da credencial criada na etapa anterior.

    • file_uri_list: é uma lista delimitada por vírgulas dos arquivos de origem que você deseja carregar. Você pode usar curingas nos nomes de arquivo em seus URIs. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere.

    • format: para DBMS_CLOUD.COPY_DATA com dados JSON, o type é json. Especifique outros valores de formato para definir as opções que descrevem o formato do arquivo de origem JSON. Consulte DBMS_CLOUD Opções de Formato de Pacote para obter mais informações.

    Neste exemplo, namespace-string corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

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