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: invalid number dans un SQLLOADER


Sujet :

SQL*Loader Oracle

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 45
    Points : 49
    Points
    49
    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 : 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.

  2. #2
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Bonsoir,
    vous êtes certain que ça marchait avant ?
    je ne comprends pas la retriction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

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

Discussions similaires

  1. Ora-01722: invalid number (du à restriction dans l'univers)
    Par mik388 dans le forum Launchpad (ex-Infoview)
    Réponses: 4
    Dernier message: 04/06/2010, 17h12
  2. Erreur ORA-01722 "invalid number"
    Par devbegins dans le forum Débuter
    Réponses: 3
    Dernier message: 23/01/2010, 00h14
  3. Réponses: 2
    Dernier message: 27/05/2009, 13h57
  4. [ODBC] message "01722 Invalid Number"
    Par clbarbie dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 03/04/2009, 17h53
  5. Erreur 01722 Invalide number
    Par freestyler1982 dans le forum Oracle
    Réponses: 8
    Dernier message: 09/11/2006, 15h28

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