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 :

insertion de plusieurs lignes, comment faire ?


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut insertion de plusieurs lignes, comment faire ?
    Bonjour,

    J'ai un logiciel qui tourne actuellement sous mysql que je doit migrer sur une base oracle, mais j'ai quelques soucis par rapport à une fonctionnalité de ce logiciel.

    En fait, il lit les informations contenues dans une carte à puce, ce qui peut représenter jusqu'à 500 insertions en même temps. A première vue, sqlldr paraissait être une bonne solution (et la seule solution d'ailleurs), mais en fait il s'avère que non puisque :

    - le logiciel doit pouvoir tourner sur des posts client qui n'ont pas d'installation oracle.
    - apparement, sqlloader ne marche que sur les tables vides (lorsque j'essaie de le faire sur une table non vide j'ai une erreur "SQL*Loader-601: For INSERT option, table must be empty. Error on table T_ACTIVITE".
    Comme l'enregistrement aura lieu plusieurs fois sur la table j'en déduit que ce n'est pas l'outil que je doit utiliser.

    Alors donc ma question est de savoir s'il y a un autre outil, ou si je suis obligé d'insérer les lignes une par une, et dans ce cas, j'ai bien peur que le temps d'insertion soit une catastrophe dans le cas d'un serveur distant ?

    Pourriez vous me donner vos avis éclairé pour m'aider ?

    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Bone pour le deuxième point j'ai trouvé l'astuce, le "APPEND" pourtant j'ai lu le tutorial sur sqlldr en long en large et en travers mais je devais pas avoir les yeux en face des trous... cela dit j'ai quand meme un soucis au niveau du premier point évoqué...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    le top c'est sql*loader, y'a rien de plus performant pour les chargements de masse

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Si le poste client n'a aucune installation Oracle, vous pouvez au moins:
    - automatiser l'envoi du fichier du poste client vers le serveur qui héberge la base Oracle et faire charger les données avec SQL*Loader depuis le serveur (assez facile, si vous avez un environnement de développement web)
    ou
    - coder l'insertion des données depuis le client avec un language qui ne nécessite pas d'installation du client Oracle (je crois qu'il y a une possibilité avec un certain type de driver Java: http://download-uk.oracle.com/docs/c...vw.htm#1004158).

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Je développe en Java, j'utilise les driver ojdbc, qui marche pas trop mal pour le moment, mais je ne peux pas utilisé sqlldr directement sur le post client, c'est justement cela qui me pose un problème puisque c'est à partir du poste client que j'ai des enregistrements à inserer dans la base...

    Avec mysql on a la commande load data infile qui fonctionne sans avoir à installer mysql sur le pc client mais avec oracle on ne peut rien faire sans l'installation... enfin pas que je sache...

    Donc la solution sql loader ne convient pas vraiment à ce que je veux faire...

    Je n'ai donc que la solution de charger les lignes unes à unes sinon ? Ce qui va être une catastrophe en temps de chargement dans un architecture distante non ?

  6. #6
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Je n'ai donc que la solution de charger les lignes unes à unes sinon ?
    Je crois que oui, à moins de de pouvoir générer un script SQL mais dans ce cas là il faut avoir une installation SQL*Plus sur le poste client.

    Ce qui va être une catastrophe en temps de chargement dans un architecture distante non ?
    Le temps de réponse dépend au moins du volume de données à charger (nombre de lignes, taille d'une ligne) ainsi que du la vitesse du réseau.
    A vous de le tester ...

  7. #7
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Je ne connais pas assez Java pour savoir si c'est possible ou non mais en Pro*C (qui necessite l'intallation du client Oracle donc pas possible pour toi) il est possible de coder des insertions par tableau.

Discussions similaires

  1. [WD-2007] publipostage avec plusieurs lignes comment faire ?
    Par rogerfon dans le forum Word
    Réponses: 2
    Dernier message: 20/02/2011, 13h59
  2. [e-commerce ] Paiement en ligne : comment faire ?
    Par webtheque dans le forum E-Commerce
    Réponses: 15
    Dernier message: 19/01/2010, 10h50
  3. [AC-2007] Opérations sur plusieurs lignes, comment faire ?
    Par Endlersman dans le forum IHM
    Réponses: 0
    Dernier message: 03/07/2009, 19h34
  4. Plusieurs utilisateurs, comment faire ?
    Par martonpylon12 dans le forum Access
    Réponses: 3
    Dernier message: 12/09/2006, 18h09
  5. Insert Into .... On Duplicate. Comment faire ?
    Par deloo dans le forum Requêtes
    Réponses: 5
    Dernier message: 17/02/2005, 17h29

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