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

Import/Export Oracle Discussion :

ORA-01722 sur SQL Loader


Sujet :

Import/Export Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut ORA-01722 sur SQL Loader
    bonjour tout le monde,
    je suis en recherche d'aide pour résoudre mon problème matinal.
    je suis en ce moment en train de rédiger des slides pour une petite formation administration Oracle 10gR2 avec EM.
    du coup j'ai fait un petit test de SQL Loader pour faire des jolies captures

    sauf que ca n'a pas fonctionné comme prévu. voici le probleme :
    j'ai un fichier de données qui contient ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    1;bob;5
    2;henry;5
    3;john;6
    4;michel;2
    5;maurice;4
    6;thierry;3
    je veux inserer ces données dans une table TEST qui contient 3 colonnes (id number, name varchar2 et id_proj number).

    je suis donc aller sur entreprise manager dans la partie sql loader. j'execute l'assistant qui crée automatiquement le control file et j'execute le job. sauf que dans ma table seulement la derniere ligne de mon fichier de données s'insère. pour les autres j'ai une erreur

    mon 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
     
    LOAD DATA
    APPEND
    INTO TABLE HR.TEST
    FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
    (
      ID INTEGER EXTERNAL,
      NAME CHAR,
      ID_PROJ INTEGER EXTERNAL
    )
    voici un bout du fichier log :

    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
     
    Table HR.TEST, loaded from every logical record.
    Insert option in effect for this table: APPEND
     
       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    ID                                  FIRST     *   ;  O(") CHARACTER            
    NAME                                 NEXT     *   ;  O(") CHARACTER            
    ID_PROJ                              NEXT     *   ;  O(") CHARACTER            
     
    Record 1: Rejected - Error on table HR.TEST, column ID_PROJ.
    ORA-01722: invalid number
     
    Record 2: Rejected - Error on table HR.TEST, column ID_PROJ.
    ORA-01722: invalid number
     
    Record 3: Rejected - Error on table HR.TEST, column ID_PROJ.
    ORA-01722: invalid number
     
    Record 4: Rejected - Error on table HR.TEST, column ID_PROJ.
    ORA-01722: invalid number
     
    Record 5: Rejected - Error on table HR.TEST, column ID_PROJ.
    ORA-01722: invalid number
     
     
    Table HR.TEST:
      1 Row successfully loaded.
      5 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    je vois pas trop d'ou vient le problème. j'ai essayer d'enlever la 3eme colonne du fichier de données comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    1;bob
    2;henry
    3;john
    4;michel
    5;maurice
    6;thierry
    et d'inserer le tout sur une 2eme table de test avec seulement 2 colonnes et ca marche. j'ai aussi tester de rajouter une 4eme colonne contenant des varchar et d'inserer sur une table a 4 colonnes et ca marche.

    je sens que c'est un truc tout con qui fait que ca marche pas mais la je trouve pas donc si quelqu'un a une idée je suis preneur

    merci d'avance

  2. #2
    En attente de confirmation mail
    Inscrit en
    Mars 2010
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 205
    Points : 230
    Points
    230
    Par défaut
    C'est sûrement un truc tout con, ça marche parfaitement en testant ton exemple :

    SQL*Loader: Release 9.2.0.8.0 - Production on Ve Avr 23 14:45:33 2010

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

    Commit point reached - logical record count 6


    J'ai lancé depuis Unix, peut-être as-tu des problèmes si tu es sous Windows.

    Il se peut aussi que tu aies des caractères parasites non visibles dans ton fichier d'entrée en fin de ligne.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    en effet ta piste a l'air d'etre la bonne.
    mon serveur est sur linux et mon client depuis lequel j'accède à EM est sous windows.
    quand je crée le fichier de données sous windows (avec notepad++ ou notepad classique) ca ne fonctionne pas. par contre quand je crée mon fichier sous linux la ca fonctionne. et ca fonctionne aussi si je transfert mon fichier de données de linux à windows et que je l'exécute depuis le windows...

    bon ben comme prévu c'était un truc con notepad doit rajouter un caractère invisible a la fin de la ligne...

    merci de ta réponse

Discussions similaires

  1. Erreur ORA-01722 sur un Insert
    Par Unsurgent dans le forum Oracle
    Réponses: 2
    Dernier message: 25/02/2011, 12h03
  2. Question sur SQL Loader
    Par Mercusyo dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 04/03/2008, 17h24
  3. IOException sur SQL LOADER
    Par zizou771 dans le forum JDBC
    Réponses: 12
    Dernier message: 19/11/2007, 16h20
  4. [10g]ORA-01008 dans SQL*Loader
    Par isa06 dans le forum SQL
    Réponses: 3
    Dernier message: 11/05/2006, 17h17
  5. 8i : sql loader et champ texte sur plusieurs lignes
    Par naonedboy dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 23/11/2005, 10h07

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