Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > SQL*Loader
SQL*Loader Forum d'entraide sur Oracle SQL*Loader
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2007, 13h19   #1
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2007
Messages : 40
Points : 25
Points : 25
Envoyer un message via MSN à damiano84
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 :
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 :
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 :
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 :
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 :
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
damiano84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 13h27   #2
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2007
Messages : 40
Points : 25
Points : 25
Envoyer un message via MSN à damiano84
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 ?
damiano84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 14h23   #3
Membre éclairé
 
Inscription : août 2005
Messages : 316
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : août 2005
Messages : 316
Points : 342
Points : 342
c'est possible pour tester, sous sql plus
Code :
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
c.langlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 15h12   #4
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Il faut sans doute utiliser la variable d'environnement NLS_NUMERIC_CHARACTERS.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 16h51   #5
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2007
Messages : 40
Points : 25
Points : 25
Envoyer un message via MSN à damiano84
et comment la configurer svp?
damiano84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 17h19   #6
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2007
Messages : 40
Points : 25
Points : 25
Envoyer un message via MSN à damiano84
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?
damiano84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 17h45   #7
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2007
Messages : 40
Points : 25
Points : 25
Envoyer un message via MSN à damiano84
est ce possible de faire la modification au niveau du fichier de controle?
damiano84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 18h07   #8
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Il est possible de configurer cette variable comme une variable d'environnement sous Unix et Windows.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 19h37   #9
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2007
Messages : 40
Points : 25
Points : 25
Envoyer un message via MSN à damiano84
il fallait modifier ds mon fichier batch comme suit :
Code :
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
damiano84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h28.


 
 
 
 
Partenaires

Hébergement Web