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 :

Importer des nombres décimaux


Sujet :

SQL*Loader Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Importer des nombres décimaux
    Bonjour à tous,

    Nouveau sur le forum, merci de votre compréhension

    J'importe des données csv dans une base Oracle en utilisant sqlldr
    Le fichier csv (exemple de test) est le suivant :

    1;;TEST3;41;;2019;14/10/2019;94,44;14/10/2019 11:24:14;
    3;;TEST3;41;;2019;14/10/2019;25,32;14/10/2019 11:24:14;
    5;;TEST3;41;;2019;14/10/2019;23,31;14/10/2019 11:24:14;
    7;;TEST3;41;;2019;14/10/2019;32,16;14/10/2019 11:24:14;
    9;;TEST3;41;;2019;14/10/2019;54,66;14/10/2019 11:24:14;
    Mon fichier de contrôle est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    load data
    infile 'D:\IPC_TOOLS\KBI\LOADER\IMPORT_DATAISD_AUTO.csv' 
    APPEND
    into table KPITAM.DATAISD
    fields terminated by ';' optionally enclosed by '"'
    ( ID_KPI, TEXT_VALUE_KPI, BU_KPI, WEEK_KPI, MONTH_KPI, YEAR_KPI, CREATION_DATE DATE(10)"DD/MM/YYYY", VALUE_KPI, DATE_INSERT DATE(19)"DD/MM/YYYY HH24:MI:SS")
    Sous Windows 2008 et Oracle 11, aucun problème pour importer les valeurs décimales dans notre base
    Nous préparons un nouveau serveur Windows 2016 et Oracle 12, et là, il me dit ORA-01722: invalid number

    Si quelqu'un a une idée ....
    Images attachées Images attachées  

  2. #2
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Bonjour,


    Contrôler les valeurs de NLS_NUMERIC_CHARACTERS entre vos deux bases
    Et sinon faites un test en remplaçant le séparateur décimal "virgule" par des points

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    ça plante si je mets des points.

    Par contre, ce ne sont pas les mêmes valeurs NLS_NUMERIC_CHARACTERS;

    Sur mon ancien serveur, j'ai ,
    Sur le nouveau, j'ai .,

    Est-ce ça qui bloque ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Oui
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'utilise la commande alter session set NLS_NUMERIC_CHARACTERS = ',.'; pour changer les paramètres
    ça ne marche toujours pas
    Je veux en plus que la virgule et non le point

    Nom : SQL.PNG
Affichages : 727
Taille : 2,2 Ko

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Pour être plus précis

    Sur l'ancien serveur, je n'ai que la virgule

    Nom : WEP019.PNG
Affichages : 995
Taille : 2,2 Ko

    Sur le nouveau, j'ai soit point suivi de virgule, soit virgule suivi de point

    Nom : INP1400.PNG
Affichages : 732
Taille : 48,4 Ko

    Je voudrais donc sur le nouveau serveur avoir la même configuration que sur l'ancien et de façon permanente

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Citation Envoyé par fgalan Voir le message
    Sur l'ancien serveur, je n'ai que la virgule
    Nom : WEP019.PNG
Affichages : 995
Taille : 2,2 Ko
    Pas exactement : c'est la virgule (séparateur décimal) suivie d'un espace (séparateur des milliers).
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Ok, donc comment je fais pour avoir de façon permanente cette configuration - virgule (séparateur décimal) suivie d'un espace (séparateur des milliers) - sur mon nouveau serveur.
    Car quand j'ouvre une session sur le nouveau, je reviens toujours à la config point suivi d'une virgule
    Merci de ton aide et de ta patience

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,

    Bon, ben, il semblerait que j'ai trouvé une astuce pour importer lorsque vous avez ce problème

    Il suffit de changer dans le fichier de contrôle la ligne

    ( ID_KPI, TEXT_VALUE_KPI, BU_KPI, WEEK_KPI, MONTH_KPI, YEAR_KPI, CREATION_DATE DATE(10)"DD/MM/YYYY", VALUE_KPI , DATE_INSERT DATE(19)"DD/MM/YYYY HH24:MI:SS")

    en

    ( ID_KPI, TEXT_VALUE_KPI, BU_KPI, WEEK_KPI, MONTH_KPI, YEAR_KPI, CREATION_DATE DATE(10)"DD/MM/YYYY", VALUE_KPI "REPLACE(:VALUE_KPI,',','.')", DATE_INSERT DATE(19)"DD/MM/YYYY HH24:MI:SS")

    Et là, miracle , mes frères, ça marche !!

Discussions similaires

  1. [XL-2013] Point . et virgule , sous VBA - format des nombres décimaux et dates
    Par Polygos dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 20/06/2017, 21h50
  2. Importation des nombres décimaux à virgule via COPY
    Par marcandre dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/07/2014, 15h12
  3. [PHP,MYSQL et CSV]Importation avec nombres décimaux
    Par m3n2o dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 20/06/2006, 12h47
  4. Select sur des nombre décimaux de format 0.*
    Par CanardJM dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/08/2005, 17h04
  5. Réponses: 15
    Dernier message: 30/06/2005, 17h35

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