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 :

Erreur sur LOAD DATA INFILE


Sujet :

Import/Export Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 51
    Points
    51
    Par défaut Erreur sur LOAD DATA INFILE
    Bonjour,

    J'essaie d'importer des données d'un fichier texte vers ma base Oracle et j'obtiens une erreur.

    La table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL> DESC Sexe;
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ---------------
     
     NUMERO                                             NUMBER
     LIBELLE                                            VARCHAR2(100)
    Le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Numéro|Libellé
    0|Inconnu
    1|Féminin
    2|Masculin
    Ma requête est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LOAD DATA INFILE 'C:\Fichier\Sexe.txt'
    TRUNCATE
    INTO TABLE Sexe 
    FIELDS TERMINATED BY '|'
    (  Numero ,          
     Libelle        
    );
    J'obtiens l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-00900: instruction SQL non valide
    Est-ce que quelqu'un comprend la raison de cette erreur ?

    Merci par avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 51
    Points
    51
    Par défaut
    J'avance un peu dans le problème. Quand j'exécute la commande dans Sql*Plus j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> LOAD DATA INFILE 'C:\ExportClimco\Sexe.csv' TRUNCATE INTO TABLE Sexe FIELDS TERMINATED BY '|' (NUMERO,LIBELLE); 
    SP2-0734: commande inconnue au dÚbut de "LOAD DATA ..." - le reste de la ligne est ignorÚ.
    Maintenant comment faire pour que cette commande soit connue ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par crazyday Voir le message
    J'avance un peu dans le problème. Quand j'exécute la commande dans Sql*Plus j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> LOAD DATA INFILE 'C:\ExportClimco\Sexe.csv' TRUNCATE INTO TABLE Sexe FIELDS TERMINATED BY '|' (NUMERO,LIBELLE); 
    SP2-0734: commande inconnue au dÚbut de "LOAD DATA ..." - le reste de la ligne est ignorÚ.
    Maintenant comment faire pour que cette commande soit connue ?
    Bonjour,

    La commande que vous souhaitez exécuter est le contenu d'un fichier de control utilisé par l'outil oracle sqlldr (pour sqlloader) et n'est pas une commande sqlplus.

    Quelle est la commande que vous utilisez pour charger votre fichier votre fichier de données?

    Philippe

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 51
    Points
    51
    Par défaut
    En fait je viens de comprendre (à peu près) comment fonctionne le Sql Loader.

    Apparemment ce n'est pas la solution que je cherche.

    Habituellement, je travaille sous SqlServer, et sous cette base il existe une commande sql qui permet d'importer des fichiers en base (BULK INSERT).

    Du coup ma question devient : existe-t-il un équivalent en Oracle ?

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Je pense que SQL Loader est l'outil adéquat pour faire ce que vous souhaitez.

    Dans un premier temps, j'essaierais de supprimer la ligne d'en-tête du fichier texte, de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    0|Inconnu
    1|Féminin
    2|Masculin
    Ensuite, si cela ne fonctionne toujours pas, je modifierais le fichier de contrôle de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    LOAD DATA
    INFILE 'C:\Fichier\Sexe.txt' "str \n"
    TRUNCATE
    INTO TABLE Sexe
    FIELDS TERMINATED BY '|'
    (Numero,Libelle)
    Edit : concernant la première ligne du fichier, on peut également l'ignorer en utilisant l'option skip=1 dans la commande qui fait appel à SQL Loader. Le paramètre 1 indique le nombre de ligne que l'on souhaite ignorer dans le fichier de données à charger.

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

Discussions similaires

  1. Detection d'erreur sur LOAD DATA LOCAL INFILE
    Par cquilgars dans le forum Administration
    Réponses: 3
    Dernier message: 01/08/2013, 17h51
  2. [10g] ORA-00900 sur LOAD DATA INFILE
    Par Harelde dans le forum SQL
    Réponses: 3
    Dernier message: 24/04/2013, 16h45
  3. LOAD DATA INFILE sur un serveur
    Par MrJack14 dans le forum MySQL
    Réponses: 1
    Dernier message: 11/04/2010, 11h01
  4. Erreur LOAD DATA INFILE
    Par PoP_NicoW dans le forum Débuter
    Réponses: 6
    Dernier message: 20/01/2010, 22h14
  5. LOAD DATA INFILE sur table avec AUTO_INCREMENT PRIMARY KEY ?
    Par ctobini dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/10/2007, 11h00

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