Carica un file JSON di documenti delimitati da riga in una raccolta

Per caricare i dati dalle raccolte nel cloud, è innanzitutto necessario memorizzare le credenziali di storage degli oggetti nell'Autonomous Database, quindi utilizzare la procedura DBMS_CLOUD.COPY_COLLECTION per caricare i documenti in una raccolta.

In questo esempio vengono caricati i valori JSON da un file delimitato da righe e viene utilizzato il file JSON myCollection.json. Ogni valore, ogni riga, viene caricato in una raccolta nel database come singolo documento.

Ecco un esempio di tale file. Ha tre linee, con un oggetto per riga. Ciascuno di questi oggetti viene caricato come documento JSON separato.

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

Prima di caricare i dati da myCollection.json nel database, copiare il file nell'area di memorizzazione degli oggetti:

  • Creare un bucket nell'area di memorizzazione degli oggetti. Ad esempio, creare un bucket Oracle Cloud Infrastructure Object Storage dal collegamento a Oracle Cloud Infrastructure Object Storage, quindi nel compartimento selezionato fare clic su Crea bucket oppure utilizzare un comando come il seguente comando CLI OCI per creare un bucket:

    oci os bucket create --name fruit_bucket -c <compartment id>
  • Copiare il file JSON nel bucket dell'area di memorizzazione degli oggetti. Ad esempio, utilizzare il seguente comando CLI OCI per copiare il file JSON in fruit_bucket su Oracle Cloud Infrastructure Object Storage:

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

Caricare il file JSON dall'area di memorizzazione degli oggetti in una raccolta denominata fruit nel database come indicato di seguito.

  1. Memorizzare le credenziali dell'area di memorizzazione degli oggetti utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL, come mostrato nell'esempio riportato di seguito.
    SET DEFINE OFF
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password'
      );
    END;
    /

    Questa operazione memorizza le credenziali nel database in formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale. Tenere presente che questo passo è necessario una sola volta a meno che le credenziali dell'area di memorizzazione degli oggetti non vengano modificate. Dopo aver memorizzato le credenziali, è possibile utilizzare lo stesso nome di credenziale per caricare tutti i documenti.

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione relativa all'uso del principal delle risorse per accedere alle risorse di Oracle Cloud Infrastructure.

    Per informazioni dettagliate sui parametri, vedere CREATE_CREDENTIAL Procedura.

    Nota

    Alcuni strumenti come SQL*Plus e SQL Developer utilizzano il carattere E commerciale (&) come carattere speciale. Se la password contiene il carattere E commerciale, utilizzare il comando SET DEFINE OFF in tali strumenti come mostrato nell'esempio per disabilitare il carattere speciale e creare correttamente la credenziale.
  2. Caricare i dati in una raccolta utilizzando la procedura 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;
    /
    

    Di seguito sono riportati i parametri.

    • collection_name: è il nome della raccolta di destinazione.

    • credential_name: è il nome della credenziale creata nel passo precedente. Il parametro credential_name deve essere conforme alle convenzioni di denominazione degli oggetti Oracle. Per ulteriori informazioni, vedere Regole di denominazione degli oggetti del database.

    • file_uri_list: è una lista delimitata da virgole dei file di origine che si desidera caricare.

    • format: definisce le opzioni che è possibile specificare per descrivere il formato del file di origine. Le opzioni di formato characterset, compression, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays sono supportate durante il caricamento dei dati JSON. Eventuali altri formati specificati genereranno un errore.

      Se i dati nei file di origine sono cifrati, decifrare i dati specificando il parametro format con l'opzione encryption. Per ulteriori informazioni sulla decifrazione dei dati, vedere Decifra dati durante l'importazione dallo storage degli oggetti.

      Per ulteriori informazioni, vedere DBMS_CLOUD Opzioni formato pacchetto.

    Dove namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e fruit_bucket è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti e Panoramica dello storage degli oggetti.

    Per informazioni dettagliate sui parametri, vedere COPY_COLLECTION Procedura.

    La raccolta fruit nel database contiene ora un documento per ogni riga del file myCollection.json.