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

C++ Discussion :

Enregistrement fichier CSV Oracle


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut Enregistrement fichier CSV Oracle
    Bonjour à tous,

    Je souhaiterai enregistrer le contenu d'un composant VirtualTable chargé à partir d'un fichier CSV dans une table Oracle ou intégrer un fichier CSV dans une table Oracle à partir du code C++ avec un temps de réponse rapide.
    Est-ce que vous avez des solutions à proposer à partir de ces 2 possibilités ou toute autre possibilité répondant à cette attente ?

    Merci d'avance

    Cordialement

  2. #2
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    remplir une base Oracle à partir d'un CSV : OK. Pourquoi en utilisant le language C++ ?

    Tu pourras le faire assez simplement en PHP.
    Nullius in verba

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour ta réponse, je veux le faire en C++ puisque le programme qui utilisera cette option est développé comme ça.
    Après éventuellement faire l'appel d'une page PHP dans une procédure Oracle.
    Après il y a toujours le problème du chemin du fichier sélectionné.

  4. #4
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Ton problème, c’est quoi exactement ?

    Logiquement, il y a trois étapes :
    - lire le CSV
    - faire le mapping entre les colonnes du CSV et les colonnes de la base de données
    - insérer les valeurs dans la base de données

    Pour la première partie, il y a pas mal de code qui traîne un peu partout, dont la plupart fait mal le travail (typiquement s’il y a des retours chariots dans les valeurs, la norme (il y a enfin une RFC pour le CSV) le permet même si ce n’est pas courant) mais qui seront probablement suffisants.

    Pour la deuxième partie, je suppose qu’il est fixe, donc pas de soucis.

    Quant à la troisième, il faut regarder la doc d’oracle. Si tu es déjà au sein d’une application qui utilise Oracle, il y a sûrement des exemples pour lancer des requêtes SQL.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour ta réponse.
    Oui c'est sûr que c'est simple de faire ça à partir des étapes que t'as donné.
    Le problème c'est que je vais avoir 1000 lignes à écrire donc si tu veux le problème c'est la rapidité d'exécution.
    Je voulais savoir s'il y avait des possibilités d'accélérer le traitement en procédant différemment.

  6. #6
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    1000 lignes, que ce soit pour le code qui va lire le fichier ou la base de donnée, c’est de la rigolade. Donc une approche naïve avec chargement complet du fichier en mémoire fonctionnera très bien.

    Les bonnes questions à te poser sont toutefois :
    - est-ce que ça sera toujours 1000 lignes ou est-ce que ça peut être beaucoup plus ?
    - est-ce que le chargement du fichier doit être transactionnel ?

    Côté performances, c’est fonction du SGBD. La plupart supportent (donc je suppose que c’est aussi le cas d’Oracle) l’insertion multiple en une seule requête, mais je n’ai aucune idée de la taille maximum que peut faire une telle requête. Si tu veux minimiser l’empreinte mémoire, il faut générer et exécuter tes requêtes au fil de l’eau de ton parcours csv, avec les risques que ça comporte si ton CSV est mal formé par exemple (nécessité d’annuler ce qui a déjà été fait). Logiquement, une transaction c’est fait pour ça, par contre, ça dégrade les perfs.

    Sinon, tu as parlé dans ton message initial d’une VirtualTable. C’est quoi ?

Discussions similaires

  1. enregistrer fichier csv dans une table
    Par decksroy dans le forum Forms
    Réponses: 14
    Dernier message: 28/02/2008, 19h16
  2. Réponses: 25
    Dernier message: 05/07/2006, 16h46
  3. Enregistrement fichier excel dans une base mysql (pas csv)
    Par morph12345 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/03/2006, 10h01
  4. Enregistrer un fichier ".CSV" en ".XLS"
    Par Isa31 dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/03/2006, 14h05
  5. Réponses: 12
    Dernier message: 27/01/2006, 11h07

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