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 :

Décodage d'un fichier avec des lignes de formats différents


Sujet :

SQL*Loader Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Points : 11
    Points
    11
    Par défaut Décodage d'un fichier avec des lignes de formats différents
    J'ai un fichier ayant ce format :

    Liste des adresses
    Base des adresses, 75, 01/01/2010
    15, Dupont Jean, 25, rue Belleville, Paris, 75005
    2, Durant Pierre, 6, rue Thiers, Paris, 75017
    457, Dupont Jean, 47, avenue de Paris, Paris, 75002
    .
    .


    Je dois décoder ce fichier.
    La première ligne (Liste des adresses) est ignorée
    La deuxième ligne a un format différent des autres lignes (3 à N)
    Comment identifier cette ligne pour écrire quelque chose dans cet esprit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    INTO TABLE "Table_adresse"
     
    WHEN LIGNE = 2
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
     
      (LIBELLE,
       DEPARTEMENT,
       DATCREATION,
       )
     
    WHEN LIGNE > 2
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
     
      (ID,
       NOM,
       VOIERIE,
       COMPLADR,
       COMMUNE,
       CODPOST
       )
    Merci d’avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Cela devrait pouvoir se faire avec le fichier de contrôle suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    OPTIONS(SKIP=1)  %Permet de passer le 1er enregistrement
    LOAD DATA
    INTO TABLE OWNER.TABLE_NAME
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
    WHEN (1:1) = 'B'   %Teste le premier caractère de l'enregistrement
      (LIBELLE,
       DEPARTEMENT,
       DATCREATION,
       )
    INTO TABLE OWNER.TABLE_NAME
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
    WHEN (1:1) != 'B'  %Teste le premier caractère de l'enregistrement
    (ID,
     NOM,
     VOIERIE,
     COMPLADR,
     COMMUNE,
     CODPOST
    )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Points : 11
    Points
    11
    Par défaut
    Merci pour ce conseil, mais le problème est que le contenu de la 2ème ligne est variable, je ne sais pas à l’avance son contenu.
    Je ne connais que sa position (2ème ligne) et son format.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    avec 2 fichiers de control et en lançant 2 SQLLoader ça doit être jouable

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    D'accord avec orafrance, en 2 passes avec les fichiers de contrôle suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    --Premier control file pour ne charger que la 2ème ligne
    
    OPTIONS(SKIP=1, LOAD=1)  
    LOAD DATA
    TRUNCATE
    INTO TABLE OWNER.TABLE_NAME
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
      (LIBELLE,
       DEPARTEMENT,
       DATCREATION,
       )
    
    --Deuxième control file pour charger à partir de la 3ème ligne
    
    OPTIONS(SKIP=2)  
    LOAD DATA
    APPEND
    INTO TABLE OWNER.TABLE_NAME
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
    (ID,
     NOM,
     VOIERIE,
     COMPLADR,
     COMMUNE,
     CODPOST
    )

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

Discussions similaires

  1. Lire fichier, sauter des lignes hors format
    Par Newenda dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/01/2014, 13h19
  2. Traiter des fichiers avec des millions de lignes
    Par nice-one dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 22/04/2013, 12h03
  3. Listbox avec des lignes de couleurs différentes
    Par biwi8272 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/02/2009, 16h24
  4. gridBagLayout avec des lignes de taille différentes
    Par zuzuu dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/06/2008, 14h16
  5. Réponses: 4
    Dernier message: 04/06/2007, 15h28

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