IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL*Loader Oracle Discussion :

sqlloader: chargement complexe


Sujet :

SQL*Loader Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Par défaut sqlloader: chargement complexe
    Bonjour,
    je dois charger un fichier comportant 3 colonnes (nom, prénom et emails) dans une table en comportant plus.

    voici un exemple d'une ligne
    "seb";"dupont";"seb@dupont.com";


    Données non fournies à insérer :
    abonne_ml = 1
    id_lang_ml = 1
    date_inscription_ml = date de l'insertion

    Contrôle à l'insertion :
    - Ne pas insérer un email déjà présent
    - Ne pas mettre à jour les champs nom et prénom si email existe

    Est-ce possible avec SQLLoader ? (j'en profite pour féliciter l'auteur de l'article sur SQLLoader).

    Comment écrire le fichier de contrôle ?

    Par avance merci pour votre aide.

    sébastien

  2. #2
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Perso je ferais tout ca en 2 etapes :

    1) chargement des données "brut" dans une table de travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    --Make Work Table
    create table T_Work ( prenom varchar2(50),nom varchar2(20) , email varchar2(100)) ; 
    --Load data into T_Work
    LOAD DATA INFILE 'data.csv'
    TRUNCATE
    INTO TABLE T_Work 
    FIELDS TERMINATED BY ';' optionally enclosed by '"'
    (  PRENOM ,          
       NOM ,          
      EMAIL)
    2) Une fois que toute tes lignes sont chargées, tu peux alors faire ce que tu veux en la table T_Work et ta table finale, vérification des doublons sur le email et ne pas les insérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    insert into T_FINAL(prenom, nom, email, abonne_ml, id_lang_ml )
    select prenom, nom, email 1, 1
    from T_Work w
    where not exists (select null from T_FINAL f
                             where f.email = W.email
                             )
    J'ai pas testé une à une les lignes de commande.

    Bon courage

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pour info, c'est tout chaud d'aujourd'hui : http://jaouad.developpez.com/sqlldr/

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Par défaut
    Merci à vous deux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQLLoader - oracle10g - chargement multi table
    Par isn44 dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 14/01/2008, 14h09
  2. sqlloader : annuler un chargement
    Par lerenard dans le forum SQL*Loader
    Réponses: 4
    Dernier message: 16/03/2007, 13h54
  3. sqlloader, chargement (un peu) complexe
    Par fguigui dans le forum SQL*Loader
    Réponses: 10
    Dernier message: 21/09/2006, 16h51
  4. [sqlloader]problèmes de chargement
    Par ssidki dans le forum Oracle
    Réponses: 6
    Dernier message: 26/07/2006, 18h36
  5. Réponses: 2
    Dernier message: 07/01/2006, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo