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 :

comment inserer des chiffres decimales stocké dans un fichier excel avec sqlloader


Sujet :

SQL*Loader Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Points : 38
    Points
    38
    Par défaut comment inserer des chiffres decimales stocké dans un fichier excel avec sqlloader
    salut
    j'ai un fichier excel qui contient des chiffres decimales que je veux inserer dans une table oracle9i j'ai utilisé sqlloder avec le fichier de controle suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LOAD DATA INFILE 'fichier.csv'
    APPEND
    INTO TABLE table
    FIELDS terminated BY ';'
    (
    montant
    )
    mais j'arrive pas à inserer mes donnees il me donne l'erreur suivante:
    Enregistrement 1 : Rejeté - Erreur sur table table, colonne MONTANT.
    ORA-01722: Nombre non valide
    svp si quelq'un peut me dire d'ou viens ce probleme merci d'avance

  2. #2
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Le nom table pour une table ne me semble pas approprié.
    Le champ montant semble numrique : est-tu sûr que l'ensemble des valeurs est numérique?
    Y a til une valeur nulle dans le fichier csv ?
    L'erreur peut aussi provenir de l'utilisation du point au lieu de la virgule (ou l'inverse) comme séprateur décimal...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    merci pour votre reponse
    mon probleme que j'arrive a inserer les chiffres qui ne contiennent pas de valeurs apres la virgule mais si le chiffre contient une virgule j'arrive pas a l'inserer dans ma table.... je precise que je utilise le . comme virgule

  4. #4
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LOAD DATA INFILE 'fichier.csv'
    APPEND
    INTO TABLE nom_table
    FIELDS terminated BY ';'
    (
    montant DECIMAL EXTERNAL
    )

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    salut
    j'ai utilisé le code que vous m'avez donné mais ça marche pas il me donne tjrs la meme erreur!!quoi faire

  6. #6
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    donnez un exemple de données .

    c'est quel format ? 4.25 ou 4,25 ?
    quel est votre OS ?
    comment est défini votre séparateur décimal ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    le format de données que j'utilise est 4.25 et l'operateur decimal c'est le .
    mon OS est windows XP

  8. #8
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Donnez le ctl utilisé ainsi que 3-4 lignes du fichier "bad".

    Lancez SQL*Plus, dans une fenêtre MS-DOS (sqlplus) :

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    mon fichier de controle c'est:
    LOAD DATA INFILE 'balance.csv'
    APPEND
    INTO TABLE balance
    FIELDS terminated BY ';'
    (
    annee,
    mois,
    lpr,
    sa,
    solde Decimal EXTERNAL,
    cumul Decimal EXTERNAL
    )

    les lignes de fichier balance.bad:
    2006;12;1103;G05012;12136.68;267143.70
    2006;12;1103;G05021;1520.77;21987.89
    2006;12;1103;G05032;15754.00;219848.31
    2006;12;1103;G05035;9440.06;122374.75
    2006;12;1103;G05101;3952.82;44621.54
    2006;12;1103;G05209;29600.18;363837.23
    2006;12;1103;G05210;2256.41;9717.11
    2006;12;1103;G05211;18863.78;254376.55
    2006;12;1103;G05212;47658.42;680726.68
    2006;12;1103;G05213;83168.38;1041397.02
    2006;12;1103;G05214;53665.00;770228.41
    et pour sqlplus ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> SELECT 9/2 FROM dual;
     
           9/2
    ----------
           4,5

  10. #10
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    l'output de SQL*Plus montre clairement et indéniablement que votre environnement considère que le séparateur décimal est la virgule et non le point !!!

  11. #11
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    et en cherchant du côté de
    to_number (solde,'0d0','nls_numeric_characters=''.,''')

  12. #12
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    non, il suffit de modifier la variable OS NLS_LANG pour qu'elle soit conforme avec les données, ou vice-versa !

  13. #13
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Importation des fichier DBF en base de donne ORACLE
    je bosion un exemple de chargement de fichier DBF(data base file) on base de donne ORACLE
    et Merci

Discussions similaires

  1. [Débutant] Coincée : Comment ajouter des retours à la ligne dans un fichier texte ?
    Par Alphacom dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/04/2013, 10h55
  2. Comment lire des valeurs de paramètres dans un fichier ?
    Par timbrochier dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2010, 12h11
  3. convertir des donnees dans un fichier excel avec Python
    Par uppersheik dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 19/02/2010, 06h40
  4. Réponses: 1
    Dernier message: 08/10/2008, 15h30
  5. Réponses: 13
    Dernier message: 08/07/2008, 17h20

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