Interroger des fichiers de vidage Oracle Data Pump externes

Vous pouvez également interroger les fichiers de vidage d'Oracle Data Pump dans le nuage en créant une table externe à l'aide de DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

Les fichiers sources pour créer ce type de table externe doivent être exportés à partir du système source à l'aide du pilote d'accès ORACLE_DATAPUMP dans les tables externes. Voir Déchargement et chargement de données avec le pilote d'accès ORACLE_DATAPUMP pour plus de détails sur l'exportation à l'aide du pilote d'accès ORACLE_DATAPUMP.

Pour créer une table externe, vous devez d'abord déplacer les fichiers de vidage Oracle Data Pump qui ont été exportés à l'aide du pilote d'accès ORACLE_DATAPUMP vers votre magasin d'objets, puis utiliser DBMS_CLOUD.CREATE_EXTERNAL_TABLE pour créer la table externe.

Les fichiers sources de cet exemple sont les fichiers de vidage d'Oracle Data Pump, exp01.dmp et exp02.dmp.

  1. Stockez vos données d'identification de magasin d'objets à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL.

    Exemple :

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password' );
    END;
    /
    

    Cette opération stocke les données d'identification dans la base de données dans un format chiffré. Vous pouvez utiliser n'importe quel nom pour le nom des données d'identification. Notez que cette étape n'est requise qu'une seule fois, sauf si les données d'identification du magasin d'objets changent. Une fois les données d'identification stockées, vous pouvez utiliser le même nom pour créer des tables externes.

    Voir Procédure CREATE_CREDENTIAL pour plus d'informations sur les paramètres username et password pour différents services de stockage d'objets.

  2. Créez une table externe au-dessus de vos fichiers sources à l'aide de la procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

    Exemple :

    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;
    /
    

    Les paramètres sont les suivants :

    • table_name : Nom de la table externe.

    • credential_name : Nom des données d'identification créées à l'étape précédente.

    • file_uri_list : Liste délimitée par des virgules des fichiers de vidage Data Pump à interroger.

    • format : Définit les options que vous pouvez spécifier pour décrire le format du fichier source. Lorsque vous spécifiez le type 'datapump', le seul autre paramètre de format valide est 'rejectlimit'.

    • column_list : Liste délimitée par des virgules des définitions de colonne dans les fichiers sources.

    Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

    Vous pouvez maintenant exécuter des interrogations sur la table externe que vous avez créée à l'étape précédente. Exemple :

    SELECT count(*) FROM channels_ext;

    Par défaut, la base de données s'attend à ce que toutes les rangées du fichier de données externe soient valides et correspondent à la fois aux définitions de type de données cible et à la définition de format des fichiers. Dans le cadre de la validation, DBMS_CLOUD s'assure que toutes les parties de fichier de vidage nécessaires sont présentes et vérifie également que les fichiers de vidage sont valides et non corrompus (par exemple, exp01.dmp, exp02.dmp, etc.). Vous pouvez utiliser l'option de format DBMS_CLOUD rejectlimit pour supprimer ces erreurs. Vous pouvez également valider la table externe que vous avez créée pour voir les messages d'erreur et les rangées rejetées. Voir Valider les données externes pour plus d'informations.

    Pour des informations détaillées sur les paramètres, voir Procédure CREATE_EXTERNAL_TABLE.

    Pour plus d'informations sur les services de stockage d'objets en nuage pris en charge, voir Formats d'URI DBMS_CLOUD.