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 : 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
 
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
 
 
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.