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

Import/Export Oracle Discussion :

Control file : ne pas spécifier les champs


Sujet :

Import/Export Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Control file : ne pas spécifier les champs
    Bonjour à tous,

    Je souhaite intégrer des fichiers plats csv dans une table oracle par sql*loader. J'ai donc un fichier control de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LOAD DATA INFILE 'fichier.csv'
    REPLACE
    INTO TABLE NOMTABLE
    FIELDS TERMINATED BY ';'
    OPTIONALLY ENCLOSED BY '"'
    Mon souci est le suivant : j'aimerai ne pas avoir à spécifier les champs cible de la table. sql*loader prendrait ainsi les champs dans l'ordre des colonnes du fichier.
    Apparemment sql*loader ne sait pas gérer ceci ? Pourtant on retrouve ceci dans d'autres bases comme DB2 (db2 IMPORT FROM DATA .....) ou même mysql.

    Pouvez-vous me confirmer si c'est définitivement impossible ou s'il y a peut-être d'autres moyens pour y parvenir ?
    Sinon si je dois me coltiner la description de toutes les colonnes, je n'ai pas fini.... (migration massive de centaines de tables d'un autre SGBD vers oracle).

    Merci !

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    il ne me semble pas que les colonnes soit obligatoire si tu utilises un délimiteur de champ ... il renseignera les colonnes dans l'ordre dans lequel elles sont dans la table.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voici l'erreur qui survient ci je fais la commande de mon premier post :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL*Loader: Release 11.1.0.6.0 - Production on Fri Jul 11 10:59:23 2008
     
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
     
    SQL*Loader-350: Syntax error at line 5.
    Expecting "(", found end of file.

  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 : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    il n'y a pas de parenthèse dans le ctl que tu as donné

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Si j'ajoute des parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LOAD DATA INFILE 'fichier.csv'
    REPLACE
    INTO TABLE NOMTABLE
    FIELDS TERMINATED BY ';'
    OPTIONALLY ENCLOSED BY '"'
    ()
    il me réclame les noms de colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL*Loader: Release 11.1.0.6.0 - Production on Fri Jul 11 11:19:06 2008
     
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
     
    SQL*Loader-350: Syntax error at line 6.
    Expecting field-name, found ")".
    ()
    D'où mon idée que sqlldr oblige à spécifier les noms de champs.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    au temps pour moi, les colonnes sont bien obligatoires

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Mon dieu

    Je ne vois qu'une seule solution, je vais devoir générer un control file automatique au niveau de mon script d'extraction de ma base d'origine.

    Merci !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 111
    Points
    111
    Par défaut
    Et si tu recherchais le nom de tes colonnes dans dba_tab_columns pour ta table donnée.
    après avec un ksh, tu créé ton ctl de façon dynamique avec ce tu viens de ramener.


    une idée en passant.......

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/07/2013, 10h23
  2. [MySQL] mon select ne renvoie pas tous les champs
    Par dhonore dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/07/2011, 16h00
  3. [AC-2007] Ne pas imprimer les champs null
    Par toumack dans le forum IHM
    Réponses: 5
    Dernier message: 05/12/2009, 12h49
  4. [WD14] Fenêtre crée depuis modèle n'a pas tous les champs
    Par Pascal26 dans le forum WinDev
    Réponses: 1
    Dernier message: 18/08/2009, 16h04
  5. Réponses: 8
    Dernier message: 21/08/2007, 17h07

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