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 Oracle Discussion :

[Sqlldr]SQL*Loader-350


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut [Sqlldr]SQL*Loader-350
    Voila, j'utilise SQL Loader pour charger un fichier de données dans mes tables oracles (qui l'eût cru!), et j'obtien le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL*Loader: Release 8.1.7.0.0 - Production on Wed Jun 21 14:52:44 2006
     
    (c) Copyright 2000 Oracle Corporation.  All rights reserved.
     
    SQL*Loader-350: Syntax error at line 14.
    Expecting keyword INFILE, keyword INTO or end of file, found keyword infile.
    INFILE 'vol2.dat'
    Voici mon fichier de contrôle:

    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
    LOAD DATA INFILE 'vol.dat'
    APPEND
    INTO TABLE INV_ED_SW
    FIELDS TERMINATED BY ':'
    (
      CHCKPT,
      HOST_NOM,
      VG_NOM,
      FS,
      FS_TAILLE,
      APP_HEBER_NOM,
      APP_HEBER_TAILLE,
      FILIERE_NOM
    )
    INFILE 'vol2.dat'
    APPEND
    INTO TABLE INV_ED_HW
    FIELDS TERMINATED BY ':'
    (
      CHKCPT,
      HOST_NOM,
      ENVIRON_NOM,
      BAIE_NOM,
      DEVICE_NOM
      DEVICE_TAILLE,
      VG_NOM
    )
    Donc si je comprends bien, oracle me signale qu'il attend le mot clef INFILE, INTO, ou une fin de fichier mais qu'il a trouvé INFILE à la place (Cherchez l'erreur).
    Quelqu'un pourrait m'éclairer?
    Ancien membre du projet "Le Dernier Âge".

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    vu que personnes ne t'a répondu, j'ose une réponse bete ...

    es tu sûr qu'il est possible d'utiliser un meme fichier ctl pour 2 chargement distincts ?

    dans ce cas, ne manque t'il pas le mot clé LOAD DATA pour le chargement dans la deuxième table ?

    [EDIT] ou alors, un caractère de séparation entre les deux ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    Le message dit bien que INFILE est un des mots clefs attendus, donc je suppose effectivement que c'est possible.
    Ancien membre du projet "Le Dernier Âge".

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    j'aurais plutôt tendance à comprendre que INFILE est trouvé là où il n'est pas attendu

  5. #5
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    N'empeche, je trouve ça vachement louche: le propre de loadder est de permetre une insersion ultrarapide des données, s'il faut se connecter/deconnecter à chaque fois que le programme s'arette, et se relance, c'est une ennorme perte de temps, et puis selon le tutorial SQL*loadder, on peut charger plusieurs fichiers dans une table, et un fichier dans plusieurs table, ce serait bizare de ne pas pouvoir charger deux fichiers distincts dans deux tables distinctes. Bref, je vais refaire un tour dans la doc, si j'arrive à la retrouver.
    Ancien membre du projet "Le Dernier Âge".

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ben oui ptet que tu peux le faire mais il te manque surement un mot clé avant le INFILE.

    Le message d'erreur est "presque" clair. Il trouve INFILE et il attendait autre chose. Apres quant à ce que c'est ?

    ptet LOAD DATA ? non ? enfin moi ça me paraitrait assez logique ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  7. #7
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    Non, déjà essayé, en fait c'est justement parce qu'il écrit qu'il manque INFILE, que j'ai enlevé LOAD DATA. Enfin pour le moment j'utilise la méthodes sus-cité du double lancement de SQL*loader, en attendant de trouver mieu. Je mettrai le tag résolu une fois que je trouverais comment faire tout en "one-shot".
    Ancien membre du projet "Le Dernier Âge".

  8. #8
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Ce que tu cherches à faire est à ma connaissance impossible.

    De plus ta syntaxe pour charger dans plusieurs fichiers est incorrecte La syntaxe exacte est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    LOAD DATA 
    INFILE 'fichier1.dat'
    INFILE 'fichier2.dat'
    APPEND
    INTO MATABLE
    (col1,
     col2,
     col3)
    C'est pourquoi je pense qu'il faut que les 2 fichiers aient la même structure pour pouvoir charger 2 fichiers différents dans la même commande.

    Citation Envoyé par Floréal
    le propre de loadder est de permetre une insersion ultrarapide des données, s'il faut se connecter/deconnecter à chaque fois que le programme s'arette, et se relance, c'est une ennorme perte de temps
    Ton raisonnement ne tient pas la route : la connexion / déconnexion est infime à côté du temps de chargement des données.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  9. #9
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ben j'ai cherché un peu et je n'ai pas l'impression que ce soit possible.

    Si tu trouves, tu pourras l'ajouter à la FAQ ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  10. #10
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par plaineR
    Ton raisonnement ne tient pas la route : la connexion / déconnexion est infime à côté du temps de chargement des données.
    ça dépend du nombre de fichiers et leur taille

  11. #11
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par Fred_D
    ça dépend du nombre de fichiers et leur taille
    Oui sans doute... si t'as 1000 fichiers de 10 lignes

    Mais je pense que quand on dit que SQL*Loader est "ultra rapide pour insérer des données", on pense plutôt au chargement de gros volumes

    Après sur des petits volumes, une procédure stockée avec UTL_FILE fait tout aussi bien l'affaire (et on ne verra pas de différence de perf)...
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est sûr

  13. #13
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    Ouaiss bon, on va dire que c'est résolu alors.
    Et oui c'est vrais que dans ma phase de test j'utilise que des petits fichiers de quelques centaines de lignes. Je lancerai donc plusieurs fois le loadder.
    Je suppose qu'en prod, effectivement, le temps de connection sera négligeable.
    Ancien membre du projet "Le Dernier Âge".

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

Discussions similaires

  1. Impossible d'installer Sql loader (sqlldr) pour Oracle windows
    Par 2beornot2be dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 21/04/2008, 14h52
  2. [SQL LOADER] sqlldr renvoit "objet inexistant"
    Par poubourna dans le forum Oracle
    Réponses: 3
    Dernier message: 23/07/2007, 11h52
  3. Réponses: 3
    Dernier message: 21/06/2007, 12h53
  4. Réponses: 2
    Dernier message: 28/11/2006, 11h15
  5. [Sqlldr] SQL*Loader-350
    Par fabrice92 dans le forum Oracle
    Réponses: 3
    Dernier message: 10/03/2006, 13h18

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