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 d'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 des 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

Selon la procédure, utilisez le paramètre file_uri_list ou le paramètre partitioning_clause pour spécifier des fichiers dans un ou plusieurs 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 associez un système de fichiers réseau aux fichiers source.

    Pour plus d'informations sur la création d'un répertoire local sur votre instance Autonomous Database, reportez-vous à Création d'un répertoire dans 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 des données avec une procédure DBMS_CLOUD.

    Par 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 est une spécification de 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 spécifier 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 tient pas compte de la casse. Ce nom de fichier distingue les majuscules des minuscules.

      Pour plus de détails et un exemple d'indication de fichiers dans un répertoire, reportez-vous à Chargement des données à partir de répertoires dans Autonomous Database. Elle contient également des informations sur l'énumération du nom de répertoire pour le rendre sensible à la casse et des informations 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, reportez-vous à Attachement d'un système de fichiers réseau à Autonomous Database.