Chargement de données ou requête de données à partir de fichiers dans un répertoire

Vous pouvez utiliser les procédures DBMS_CLOUD pour charger des données à partir de fichiers dans un répertoire, y compris des répertoires créés sur des systèmes de fichiers réseau attachés. Vous pouvez également utiliser ces procédures pour créer des tables externes que vous pouvez utiliser pour interroger les données.

Les procédures DBMS_CLOUD suivantes prennent en charge le chargement de données dans la base de données à partir d'un répertoire :

  • DBMS_CLOUD.COPY_COLLECTION
  • DBMS_CLOUD.COPY_DATA

En outre, les procédures DBMS_CLOUD suivantes prennent en charge la création de tables externes à partir de données dans des fichiers d'un répertoire.

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE
  • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

En fonction de la procédure, utilisez le paramètre file_uri_list ou le paramètre partitioning_clause pour indiquer des fichiers dans des répertoires.

Pour charger des données à partir d'un répertoire, vous n'avez pas besoin d'inclure le paramètre credential_name, mais vous avez besoin de privilèges objet READ sur le répertoire.

Par exemple, vous pouvez charger des données dans une table existante à l'aide de DBMS_CLOUD.COPY_DATA :

  1. Utilisez un répertoire existant, créez un répertoire ou attachez un système de fichiers réseau pour les fichiers source.

    Reportez-vous à Création d'un répertoire dans Autonomous Database pour plus d'informations sur la création d'un répertoire local sur votre instance Autonomous Database.

    Pour plus d'informations sur l'attachement d'un système de fichiers réseau contenant les données à charger, reportez-vous à Attachement d'un système de fichiers réseau à Autonomous Database.

  2. Chargez les données avec une procédure DBMS_CLOUD.

    Exemple :

    CREATE TABLE CHANNELS
       (channel_id CHAR(1),
        channel_desc VARCHAR2(20),
        channel_class VARCHAR2(20)
       );
    /
    
    BEGIN
     DBMS_CLOUD.COPY_DATA(
        table_name => 'CHANNELS',
        file_uri_list => 'MY_DIR:channels.txt',
        format => json_object('delimiter' value ',')
     );
    END;
    /
    

    Les paramètres sont les suivants :

    • table_name : nom de la table cible.

    • file_uri_list : spécification des noms de répertoire et de fichier pour les fichiers source à charger.

      Vous pouvez indiquer un répertoire et un ou plusieurs noms de fichier ou utiliser une liste de répertoires et de noms de fichier séparés par des virgules. Le format pour indiquer un répertoire est :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données et ne fait pas la distinction entre les majuscules et les minuscules. Ce nom distingue les majuscules des minuscules.

      Pour plus d'informations et pour obtenir un exemple de spécification de fichiers dans un répertoire, reportez-vous à Chargement de données à partir de répertoires dans Autonomous Database. Elle affiche également des informations sur l'établissement de guillemets pour rendre le nom du répertoire sensible à la casse et sur l'utilisation de caractères génériques.

    • format : définit les options que vous pouvez indiquer pour décrire le format du fichier source, notamment si le fichier est de type texte, ORC, Parquet ou Avro.

Pour plus d'informations, reportez-vous à Procédure COPY_DATA.

Pour plus d'informations sur l'attachement de systèmes de fichiers réseau à Autonomous Database, reportez-vous à Attachement d'un système de fichiers réseau à Autonomous Database.