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 :

ORA-01722: Nombre non valide + sqlloader


Sujet :

SQL*Loader Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut ORA-01722: Nombre non valide + sqlloader
    salut tt le monde je travaille avec oracle 10g sous windows XP
    j'essaye de charger des données d'un fichier plat (.csv) a travers sqlloader
    le détail de la création de ma table est:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    CREATE TYPE Tlien_config AS OBJECT
    (id_config INTEGER,
    id_lien VARCHAR2(30),
    frequence VARCHAR2(30),
    sous_bande VARCHAR2(30),
    comment_config VARCHAR2(30),
    distance_lien REAL,
    site_a VARCHAR2(30),
    latitude_a REAL,
    longitude_a REAL,
    azimut_a REAL,
    equipement_a VARCHAR2(30),
    diam_a REAL,
    h_ant_a REAL,
    h_building_a REAL,
    h_roof_a REAL,
    space_div_a VARCHAR2(30),
    sep_ant_a REAL,
    h_tower_a REAL,
    polar_a VARCHAR2(30),
    canaux_a INTEGER,
    frequence_a REAL,
    site_b VARCHAR2(30),
    latitude_b REAL,
    longitude_b REAL,
    azimut_b REAL,
    equipement_b VARCHAR2(30),
    diam_b REAL,
    h_ant_b REAL,
    h_building_b REAL,
    h_roof_b REAL,
    space_div_b VARCHAR2(30),
    sep_ant_b REAL,
    h_tower_b REAL,
    polar_b VARCHAR2(30),
    canaux_b INTEGER,
    frequence_b REAL,
    power_trans REAL,
    level_recep REAL,
    date_ajout date
    )
    /
     
     
     
     
    CREATE TABLE lien_config OF Tlien_config
    (PRIMARY KEY(id_config)
    )
    ;
     
    CREATE sequence SEQ_LIEN_CONFIG start with 1 increment by 1;
     
     
    create OR REPLACE trigger declench
    before insert on lien_config REFERENCING NEW AS NEW for each row WHEN (new.id_config IS NULL AND new.date_ajout IS NULL)
    begin
    select SEQ_LIEN_CONFIG.nextval into :new.id_config from dual;
    select sysdate into :new.date_ajout from dual;
    end;
    /
    un exemple de mon fichier plat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    GUEREP7 - GUEREP3;8 GHz;8 GHz (29.65)annex1;PHASE 3;40.278;GUEREP7;29.00627;-10.02376;239.037;8-16QAM-32E1(1+1);1.8;25.0;;;YES;1.8;7.0;;V;1.0;8059.02;GUEREP3;28.819555;-10.378056;58.8653;8-16QAM-32E1(1+1);1.8;27.0;;;YES;1.8;7.0;;V;;7747.75
    LAAREP2 - LAAREP1;8 GHz;8 GHz (29.65)annex1;PHASE 3;21.149;LAAREP2;27.453056;-13.018056;208.884;8-16QAM-32E1(1+1);1.8;32.0;;;YES;1.8;7.0;;V;1.0;8059.02;LAAREP1;27.286112;-13.121667;28.8363;8-16QAM-32E1(1+1);1.8;32.0;;;YES;1.8;7.0;;V;;7747.75
    TAFREP1 - LAAREP3;8 GHz;8 GHz (29.65)annex1;PHASE 3;29.763;TAFREP1;27.94139;-12.931111;185.098;8-16QAM-32E1(1+1);1.8;42.0;;;YES;1.8;7.0;;V;1.0;8059.02;LAAREP3;27.67389;-12.958056;5.08505;8-16QAM-32E1(1+1);1.8;36.0;;;YES;1.8;7.0;;V;;7747.75
    TAFREP3 - TAFREP2;8 GHz;8 GHz (29.65)annex1;PHASE 3;13.35;TAFREP3;27.9325;-12.512222;297.175;8-16QAM-32E1(1+1);1.8;30.0;;;YES;1.8;7.0;;V;1.0;8059.02;TAFREP2;27.987232;-12.633078;117.118;8-16QAM-32E1(1+1);1.8;30.0;;;YES;1.8;7.0;;V;;7747.75
    TNTREP3 - TNT-REP4;8 GHz;8 GHz (29.65)annex1;PHASE 3;7.722;TNTREP3;28.442034;-11.163492;236.689;8-16QAM-32E1(1+1);0.6;20.0;;;YES;0.6;7.0;;V;1.0;8059.02;TNT-REP4;28.403889;-11.229444;56.6573;8-16QAM-32E1(1+1);0.6;30.0;;;YES;0.6;7.0;;V;;7747.75
    AHO-0007 - AHO-0008;38 GHz;38 GHZ (14);PHASE 3;2.826;AHO-0007;35.17222;-3.85708;164.611;38-QPSK-8E1(1+1);0.3;47.0;;;;;;50.0;V;1.0;38325.0;AHO-0008;35.14767;-3.84881;344.616;38-QPSK-8E1(1+1);0.3;29.7;17.7;12.0;;;;6.0;V;;37065.0
    YOUREP2 - YOU-0007;38 GHz;38 GHz (7);PHASE 3;7.569;YOUREP2;32.13937;-8.58968;209.335;38-QPSK-4E1;0.6;26.0;;;;;;40.0;V;1.0;38321.5;YOU-0007;32.07993;-8.6291;29.3138;38-QPSK-4E1;0.6;19.8;12.8;7.0;;;;9.0;V;;37061.5
    mon fichier de controle est 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    LOAD DATA INFILE 'C:\Mes_tests\intermediaire\lien_config.csv'
    append
    INTO TABLE lien_config
    FIELDS TERMINATED BY ';'
    trailing nullcols
    (
    id_lien ,
    frequence ,
    sous_bande ,
    comment_config ,
    distance_lien ,
    site_a ,
    latitude_a ,
    longitude_a ,
    azimut_a ,
    equipement_a ,
    diam_a ,
    h_ant_a ,
    h_building_a ,
    h_roof_a ,
    space_div_a ,
    sep_ant_a ,
    h_tower_a ,
    polar_a ,
    canaux_a ,
    frequence_a ,
    site_b ,
    latitude_b ,
    longitude_b ,
    azimut_b ,
    equipement_b ,
    diam_b ,
    h_ant_b ,
    h_building_b ,
    h_roof_b ,
    space_div_b ,
    sep_ant_b ,
    h_tower_b ,
    polar_b ,
    canaux_b ,
    frequence_b ,
    power_trans ,
    level_recep 
    )
    je lance sqlloader a partir d'un fichier batch (à travers une application java), le voila mon fichier batch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cd C:\Documents And Settings\mohamed_elaoumari
    sqlldr userid=SYSTEM/wana control=C:\Mes_tests\controles\lien_config.ctl log=C:\Mes_tests\logs\lien_config.log bad=C:\Mes_tests\bads\lien_config.bad discard=C:\Mes_tests\bads\lien_config.dis direct=false errors=0
    exit
    mais le chargement ne s'effectue pas suite a une erreur, le détail du fichier log est 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
     
    SQL*Loader: Release 10.1.0.2.0 - Production on Mer. Mai 16 11:03:26 2007
     
    Copyright (c) 1982, 2004, Oracle.  All rights reserved.
     
    Fichier de contrôle :   C:\Mes_tests\controles\lien_config.ctl
    Fichier de données :      C:\Mes_tests\intermediaire\lien_config.csv
      Fichier BAD :     C:\Mes_tests\bads\lien_config.bad
      Fichier DISCARD : C:\Mes_tests\bads\lien_config.dis
     (Allouer tous les rebuts)
     
    Nombre à charger : ALL
    Nombre à sauter: 0
    Erreurs permises: 0
    Tableau de liens :     64 lignes, maximum de 256000 octets
    Continuation :    aucune spécification
    Chemin utilisé:      Classique
     
    Table LIEN_CONFIG, chargé à partir de chaque enregistrement physique.
    Option d'insertion en vigueur pour cette table : APPEND
    option TRAILING NULLCOLS effective
     
       Nom de colonne               Position   Long.  Séparat. Encadrem. Type de données
    ------------------------------ ---------- ----- ---- ---- ---------------------
    ID_LIEN                             FIRST     *   ;       CHARACTER            
    FREQUENCE                            NEXT     *   ;       CHARACTER            
    SOUS_BANDE                           NEXT     *   ;       CHARACTER            
    COMMENT_CONFIG                       NEXT     *   ;       CHARACTER            
    DISTANCE_LIEN                        NEXT     *   ;       CHARACTER            
    SITE_A                               NEXT     *   ;       CHARACTER            
    LATITUDE_A                           NEXT     *   ;       CHARACTER            
    LONGITUDE_A                          NEXT     *   ;       CHARACTER            
    AZIMUT_A                             NEXT     *   ;       CHARACTER            
    EQUIPEMENT_A                         NEXT     *   ;       CHARACTER            
    DIAM_A                               NEXT     *   ;       CHARACTER            
    H_ANT_A                              NEXT     *   ;       CHARACTER            
    H_BUILDING_A                         NEXT     *   ;       CHARACTER            
    H_ROOF_A                             NEXT     *   ;       CHARACTER            
    SPACE_DIV_A                          NEXT     *   ;       CHARACTER            
    SEP_ANT_A                            NEXT     *   ;       CHARACTER            
    H_TOWER_A                            NEXT     *   ;       CHARACTER            
    POLAR_A                              NEXT     *   ;       CHARACTER            
    CANAUX_A                             NEXT     *   ;       CHARACTER            
    FREQUENCE_A                          NEXT     *   ;       CHARACTER            
    SITE_B                               NEXT     *   ;       CHARACTER            
    LATITUDE_B                           NEXT     *   ;       CHARACTER            
    LONGITUDE_B                          NEXT     *   ;       CHARACTER            
    AZIMUT_B                             NEXT     *   ;       CHARACTER            
    EQUIPEMENT_B                         NEXT     *   ;       CHARACTER            
    DIAM_B                               NEXT     *   ;       CHARACTER            
    H_ANT_B                              NEXT     *   ;       CHARACTER            
    H_BUILDING_B                         NEXT     *   ;       CHARACTER            
    H_ROOF_B                             NEXT     *   ;       CHARACTER            
    SPACE_DIV_B                          NEXT     *   ;       CHARACTER            
    SEP_ANT_B                            NEXT     *   ;       CHARACTER            
    H_TOWER_B                            NEXT     *   ;       CHARACTER            
    POLAR_B                              NEXT     *   ;       CHARACTER            
    CANAUX_B                             NEXT     *   ;       CHARACTER            
    FREQUENCE_B                          NEXT     *   ;       CHARACTER            
    POWER_TRANS                          NEXT     *   ;       CHARACTER            
    LEVEL_RECEP                          NEXT     *   ;       CHARACTER            
     
    la valeur utilisée pour le paramètre ROWS est passée de 64 à 26
    Enregistrement 1 : Rejeté - Erreur sur table LIEN_CONFIG, colonne DISTANCE_LIEN.
    ORA-01722: Nombre non valide
     
    \\MAXIMUM ERROR COUNT EXCEEDED - Les statistiques données ci-dessus résultent d'une exécution partielle.
     
    Table LIEN_CONFIG :
      Chargement réussi de 0 Lignes.
      1 Ligne chargement impossible dû à des erreurs de données.
      0 Lignes chargement impossible car échec de toutes les clauses WHEN.
      0 Lignes chargement impossible car tous les champs étaient non renseignés.
     
     
    Espace affecté au tableau de liens :                 248196 octets(26 lignes)
    Octets de tampon de lecture : 1048576
     
    Nombre total d'enregistrements logiques ignorés :          0
    Nombre total d'enregistrements logiques lus :            26
    Nombre total d'enregistrements logiques rejetés :         1
    Nombre total d'enregistrements logiques mis au rebut :        0
     
    Le début de l'exécution a été effectué sur Mer. Mai   16 11:03:26 2007
    La fin de l'exécution a été effectuée sur Mer. Mai   16 11:03:26 2007
     
    Temps écoulé (ELAPSED) :     00:00:00.27
    Temps processeur (CPU) :    00:00:00.03
    est ce que qlq'1 a une idée ? parce que je suis vraiment bloqué et merci d'avance pour vos suggestions

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut
    est ce que l'erreur vient du fait de la présence d'un point au lieu d'une virgule pour délimiter les décimales ? si oui comment faire pour remédier à ce problème ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    c'est possible pour tester, sous sql plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select to_number('1.2') from dual;
    select to_number('1,2') from dual;
    ça te permettra de savoir si il te faut . ou ,
    Sinon tu peut faire remplacer les . par , dans un editeur de texte si cette integration est a faire une seule fois
    Ou recherche sur le site le changement des parametres NLS (je n'ai plus le nom en tête.

    Bon courage

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Il faut sans doute utiliser la variable d'environnement NLS_NUMERIC_CHARACTERS.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut
    et comment la configurer svp?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut
    comment on peut la configurer pour etre altérer à chaque execution d'une insertion ds la table? est ce que ca peut etre fait au niveau du trigger?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut
    est ce possible de faire la modification au niveau du fichier de controle?

  8. #8
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Il est possible de configurer cette variable comme une variable d'environnement sous Unix et Windows.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut
    il fallait modifier ds mon fichier batch comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cd C:\Documents And Settings\mohamed_elaoumari
    set NLS_NUMERIC_CHARACTERS=. 
    sqlldr userid=SYSTEM/wana control=C:\Mes_tests\controles\lien_config.ctl log=C:\Mes_tests\logs\lien_config.log bad=C:\Mes_tests\bads\lien_config.bad discard=C:\Mes_tests\bads\lien_config.dis direct=false errors=0
    exit
    et ca marche a merveille merci pour tt

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut merci ca beaucoup aidé
    Citation Envoyé par damiano84 Voir le message
    il fallait modifier ds mon fichier batch comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cd C:\Documents And Settings\mohamed_elaoumari
    set NLS_NUMERIC_CHARACTERS=. 
    sqlldr userid=SYSTEM/wana control=C:\Mes_tests\controles\lien_config.ctl log=C:\Mes_tests\logs\lien_config.log bad=C:\Mes_tests\bads\lien_config.bad discard=C:\Mes_tests\bads\lien_config.dis direct=false errors=0
    exit
    et ca marche a merveille merci pour tt

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

Discussions similaires

  1. [Batch] ORA-01722: Nombre non valide
    Par informatica1989 dans le forum Spring
    Réponses: 2
    Dernier message: 02/05/2014, 10h50
  2. ORA-01722: Nombre non valide
    Par asouquieres dans le forum SQL
    Réponses: 3
    Dernier message: 13/07/2010, 15h12
  3. ORA-01722: Nombre non valide
    Par misa dans le forum Oracle
    Réponses: 4
    Dernier message: 18/12/2007, 15h23
  4. [SQLLDR]ORA-01722: Nombre non valide
    Par syl2095 dans le forum Oracle
    Réponses: 5
    Dernier message: 22/05/2006, 15h42
  5. Réponses: 7
    Dernier message: 07/03/2006, 09h34

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