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

Oracle Discussion :

[Sqldr 8.0.6 ] insertion Multiple


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 7
    Par défaut [Sqldr 8.0.6 ] insertion Multiple
    Bonjour à tous,

    Je souhaite à partir d'un seul fichier dont les champs, de longueur variables (ce qui exclus les POSITION) délimités par des ";" , charger trois tables. Le fichier a trois types d'enregistrements identifiables par un code enregistrement. la table1 étant issue du code_enreg 'EF' la table 2 du code_enreg 'LF' la table 3 du code_enreg 'TF'.
    Le champ code_enreg est le 4 eme de chaque record du fichier.
    Comment dois je écrire les trois clause When code_enreg = 'XX' ... APPEND into Table X sachant que je ne peux pas utiliser la clause POSITION.

    Les exemples des doc Oracles présentent toujours le cas de fichiers dont les champs sont de longueur fixes.

    Merci à vous

  2. #2
    Membre émérite Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    INTO TABLEA
    WHEN (4) = 'LF ' 
    (tablea_column_list)
    INTO TABLEB
    WHEN (4) = 'TF ' 
    (tableb_column_list)
    INTO TABLEB
    WHEN (4) = 'EF ' 
    (tablec_column_list)
    ?

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut [Sqldr 8.0.6 ] insertion Multiple
    Bonjour,

    Jai mis en oeuvre la solution de Pascal, que je remercie, mais je n'obtiens aucun résultat. Si je remplace (4) par le nom de la colonne seul la première table est chargée.

    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
    load data
    infile *
    APPEND
    into table brgm_bba_tf
    when (4) = 'TF' 
    fields terminated by  ',' OPTIONALLY ENCLOSED BY '"'
    trailing nullcols
    (societe char(4),no_piece char(6),type_piece char(1),code_enreg char(2),tot_facture,tot_acte,tva_prest,tot_a_payer)
    into table brgm_bba_ef
    when (4) = 'EF' 
    fields terminated by  ',' OPTIONALLY ENCLOSED BY '"'
    trailing nullcols
    (societe char(4),no_piece char(6),type_piece char(1),code_enreg char(2),date_piece DATE(6) "DDMMYY",no_fact_orig char(6),
    no_commande char(10),donneur_ordre char(10),no_agent char(5),ordre_mission  char(10),imputation1 char(10),
    imputation2 char(10),ville_depart char(10),nom_voyageur char(10),CODE_VILLE char(5),code_pays char(2))
    into table brgm_bba_lf
    when (4) = 'LF' 
    fields terminated by  ',' OPTIONALLY ENCLOSED BY '"'
    trailing nullcols
    (societe char(4),no_piece char(6),type_piece char(1),code_enreg char(2),numero_ligne char(3),
    date_ARRIVEE  DATE(6) "DDMMYY",date_depart DATE(6) "DDMMYY",lib_prestation char(50),
    nom_fournisseur char(50),lib1_facture char(50),facture,quantite)
     
     
    SQL*Loader: Release 8.0.6.3.0
    Y a t'il quelque chose de mal écrit dans le code ? ou une autre manière de traiter ce problème autre que de faire une passe par fichier.

    Merci

    Marc

  4. #4
    Membre émérite Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Il suffit d'ajouter la commande POSITION(1) afin d'indiquer a SQL*Loader de se repositionner en debut de ligne pour le traitement de chaque table.

    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
    LOAD DATA
    INFILE *
     
    APPEND
     
    INTO TABLE tablea
    WHEN col1 = 'TABLEA'
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    (id POSITION (1),col1, col2, col3)
     
    INTO TABLE tableb
    WHEN col1 = 'TABLEB'
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    (id POSITION (1),col1, col2, col3)
     
    BEGINDATA
    1,TABLEA,ROW1,ROW2
    2,TABLEA,ROW1,ROW2
    3,TABLEB,ROW1,ROW2
    4,TABLEB,ROW1,ROW2

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut La solution de Pascal est la bonne.
    Merci donc, à Pascal d'avoir apporté la solution au problème posé.

    Marc

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

Discussions similaires

  1. [debutant][code] insert multiple de valeurs
    Par topaze dans le forum Oracle
    Réponses: 9
    Dernier message: 29/11/2005, 15h22
  2. procédure stockée insert multiple
    Par gigi34 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2005, 10h37
  3. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  4. INSERT multiples avec : rs.AddNew et .Update
    Par M.Zip dans le forum ASP
    Réponses: 4
    Dernier message: 03/12/2004, 15h53
  5. pb d'insertions multiples
    Par devalender dans le forum SQL
    Réponses: 2
    Dernier message: 14/07/2004, 14h49

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