Crea credenziali e carica file di dump di Data Pump in una tabella esistente

Per il caricamento dei dati è inoltre possibile utilizzare i file di dump di Oracle Data Pump come file di origine.

I file di origine per questo tipo di caricamento devono essere esportati dal sistema di origine utilizzando il driver di accesso ORACLE_DATAPUMP nelle tabelle esterne. Per informazioni dettagliate sull'esportazione mediante il driver di accesso ORACLE_DATAPUMP, vedere Scaricamento e caricamento dei dati con il driver di accesso ORACLE_DATAPUMP.

Per caricare i dati, spostare innanzitutto i file di dump esportati utilizzando il driver di accesso ORACLE_DATAPUMP nell'area di memorizzazione degli oggetti, quindi utilizzare DBMS_CLOUD.COPY_DATA per caricare i file di dump in una tabella esistente nel database.

I file di origine in questo esempio sono i file di dump di Oracle Data Pump, exp01.dmp e exp02.dmp.

  1. Memorizzare le credenziali dell'area di memorizzazione degli oggetti utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL. Ad esempio:
    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 tutti i caricamenti dati.

    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 illustrato nell'esempio per disabilitare il carattere speciale e creare correttamente la credenziale.
  2. Caricare i dati in una tabella esistente utilizzando la procedura DBMS_CLOUD.COPY_DATA. Ad esempio:
    CREATE TABLE CHANNELS
       (channel_id CHAR(1),
        channel_desc VARCHAR2(20),
        channel_class VARCHAR2(20)
       );
    /
    
    BEGIN
     DBMS_CLOUD.COPY_DATA(
        table_name =>'CHANNELS',
        credential_name =>'DEF_CRED_NAME',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp01.dmp,
                         https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp02.dmp',
        format => json_object('type' value 'datapump')
     );
    END;
    /
    

    Di seguito sono riportati i parametri.

    • table_name: è il nome della tabella 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 dump di Data Pump che si desidera caricare.

    • format: definisce le opzioni che è possibile specificare per descrivere il formato del file di origine. Quando si specifica type come 'datapump', l'unico altro parametro di formato valido è 'rejectlimit'.

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

    Per informazioni dettagliate sui parametri, vedere COPY_DATA Procedura e COPY_DATA Procedura per i file Avro, ORC o Parquet.