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 11/12/2007, 16h13   #1
Futur Membre du Club
 
Emilie Dorchies
Inscription : décembre 2004
Messages : 45
Détails du profil
Informations personnelles :
Nom : Emilie Dorchies

Informations forums :
Inscription : décembre 2004
Messages : 45
Points : 19
Points : 19
Envoyer un message via MSN à Cofondinde
Par défaut ORA-01722: invalid number dans un SQLLOADER

BOnjour,

Nous chargeons un fichier plat avec des montants décimaux négatifs (ex : -999.99) Cela fonctionnait très bien jusqu'à ce que, sans raison apparente, on obtienen désormais l'erreur ORA-01722: invalid number.

Le control file 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
 
OPTIONS(ERRORS=0, DIRECT=TRUE, SILENT=FEEDBACK)
LOAD DATA
Append
INTO TABLE TLDMEEVP 
FIELDS TERMINATED BY ';'
WHEN FOREIGN_AMOUNT != '0'
OPTIONALLY ENCLOSED BY '"'
(
BUSINESS_UNIT,                 
ALTACCT,      
PROJECT_ID,      
FOREIGN_CURRENCY,       
FOREIGN_AMOUNT,          
PROD_TYPE_BO_SG,          
OPERATION_CD_SG,          
PRODUCT_CD_SG,          
BO_ID_SG,          
SOURCE,
DATSITU Date 'MMYYYY',
TOPAGR	CONSTANT "O",
ID SEQUENCE(MAX, 1)
)
La ligne en erreur dans la .bad est la suivante :

Code :
1
2
3
 
 
G2279;3024310000;IBEQ-A;GBP;-17456.04;AVT;AVTITV;0007307338;TBH0626939;TAV;072007
le NLS_NUMERIC_CHARACTER est ,; pour la DATABASE et ., pour la SESSION

Format de la table cible

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
SQL> DESC tldmeevp;
 Name                                      NULL?    Type
 ----------------------------------------- -------- ----------------------------
 BUSINESS_UNIT                             NOT NULL VARCHAR2(5)
 ALTACCT                                   NOT NULL VARCHAR2(10)
 PROJECT_ID                                         VARCHAR2(15)
 FOREIGN_CURRENCY                          NOT NULL VARCHAR2(3)
 FOREIGN_AMOUNT                                     NUMBER(21,3)
 PROD_TYPE_BO_SG                           NOT NULL VARCHAR2(12)
 OPERATION_CD_SG                           NOT NULL VARCHAR2(16)
 PRODUCT_CD_SG                             NOT NULL VARCHAR2(16)
 BO_ID_SG                                  NOT NULL VARCHAR2(16)
 SOURCE                                    NOT NULL VARCHAR2(3)
 TOPAGR                                             VARCHAR2(2)
 ID                                        NOT NULL NUMBER(10)
 DATSITU                                   NOT NULL DATE
Auriez-vous des pistes svp, c'est très bizarre.
Cofondinde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 02h31   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Bonsoir,
vous êtes certain que ça marchait avant ?
je ne comprends pas la retriction
Code :
1
2
3
4
5
WHEN FOREIGN_AMOUNT != '0' texte
le champ est 
FOREIGN_AMOUNT  NUMBER(21,3)
avez vous essayé ?
WHEN FOREIGN_AMOUNT != 0
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r 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 07h06.


 
 
 
 
Partenaires

Hébergement Web