Esegui query su file di dump di Data Pump esterni

È inoltre possibile eseguire query sui file di dump di Oracle Data Pump nel cloud creando una tabella esterna utilizzando DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

I file di origine per creare questo tipo di tabella esterna 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 creare una tabella esterna, spostare nell'area di memorizzazione degli oggetti i file di dump di Oracle Data Pump esportati utilizzando il driver di accesso ORACLE_DATAPUMP, quindi utilizzare DBMS_CLOUD.CREATE_EXTERNAL_TABLE per creare la tabella esterna.

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:

    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 creare tabelle esterne.

    Vedere CREATE_CREDENTIAL Procedura per informazioni sui parametri username e password per diversi servizi di storage degli oggetti.

  2. Creare una tabella esterna nella parte superiore dei file di origine utilizzando la procedura DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

    Ad esempio:

    BEGIN
       DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
        table_name =>'CHANNELS_EXT',
        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', 'rejectlimit' value '1'),
        column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)' );
    END;
    /
    

    Di seguito sono riportati i parametri.

    • table_name: è il nome della tabella esterna.

    • credential_name: è il nome della credenziale creata nel passo precedente.

    • file_uri_list: è una lista delimitata da virgole dei file di dump di Data Pump che si desidera interrogare.

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

    • column_list: è una lista delimitata da virgole delle definizioni di colonna nei file di origine.

    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.

    È ora possibile eseguire query sulla tabella esterna creata nel passo precedente. Ad esempio:

    SELECT count(*) FROM channels_ext;

    Per impostazione predefinita, il database prevede che tutte le righe del file di dati esterno siano valide e corrispondano sia alle definizioni del tipo di dati di destinazione che alla definizione del formato dei file. Nell'ambito della convalida, DBMS_CLOUD verifica che siano presenti tutte le parti necessarie del file di dump e verifica che i file di dump siano validi e non danneggiati, ad esempio exp01.dmp, exp02.dmp e così via. È possibile utilizzare l'opzione di formato DBMS_CLOUD rejectlimit per eliminare questi errori. In alternativa, è anche possibile convalidare la tabella esterna creata per visualizzare i messaggi di errore e le righe rifiutate. Per ulteriori informazioni, vedere Convalida dati esterni.

    Per informazioni dettagliate sui parametri, vedere CREATE_EXTERNAL_TABLE Procedura.

    Per ulteriori informazioni sui servizi di storage degli oggetti cloud supportati, vedere DBMS_CLOUD Formati URI.