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

Persistance des données Java Discussion :

Enregistrer un fichier excel dans la base ORACLE 9i


Sujet :

Persistance des données Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut Enregistrer un fichier excel dans la base ORACLE 9i
    Bonjour tout le monde ,
    j'ai un fichier excel et je veux l'enregistrer dans une table oracle, cette colonne est de type CLOB.
    comment faire pour convertir mon fichier de type java.io.File en CLOB de oracle?est-ce bien la bonne méthode?merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Tout d'abord, il faut savoir que l'on peut mettre à peu près tout ce que l'on veut dans une base de données Oracle.
    Tout d'abord, je ne pense pas que tu pourras stocker du contenu binaire dans un CLOB fait pour les caractères...
    Par contre, le stocker champ spécifique, il faut que ce dernier soit de type BLOB (Binary Large OBject). D'après mes souvenirs, la taille maximale d'un BLOB est de 2Gb, ce qui laisse de la marge.

    Ensuite, pour intéger les données, c'est assez simple, il faut faire comme ce qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PreparedStatement ps = conn.prepareStatement ("INSERT INTO TOTO VALUES (?)");
    File fBlob = new File ( "toto.xls" );
    FileInputStream is = new FileInputStream ( fBlob );
    ps.setBinaryStream (1, is, (int) fBlob.length() );
    ps.execute ();
    Par contre, il est fortement déconseillé de stocker plusieurs BLOB par table (bugs drivers JDBC).

    Bon courage.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut
    Tout d'abord merci infiniment pour votre réponse.
    je veux signaler que j'utilise hibernate,et j'ai la colonne de type clob, je vais essaiyer avec BLOB.
    bon j'ai un fichier excel comme j'ai dit, est ce que je peut l'extraire de et qu'il soit du même mode d'enregistrement?
    exemple :
    j'ai mon fichier qui a trois feuilles et dans chaque feuille j'ai par exemple X colonnes et Y lignes.
    est ce que je peux l'extraire avec cette structure?merci de me donner un exemple d'éxtraction si possible bien sur.
    par avance merci.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Mais de rien !
    Concernant les BLOB et hibernate, il n'y a pas de problèmes, Hibernate gère très bien ce type de donnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Blob blob = Hibernate.createBlob(inputStreamVersLeFichier);
    Par contre, concernant le second point, pour travailler un fichier Excel, je te conseille d'utiliser l'API POI (http://poi.apache.org/).
    Je n'ai pas d'exemple sous la mais mais l'utilisation de cette API est assez triviale.
    Ensuite, une fois les données extraites, il faut intégrer le tout en base de données "structurée"...

    Have fun !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut
    Bonjour,
    en faite j'utilise vraiment l api POI.
    le problème ce pose à ce niveau :
    on enregistre le fichier (excel )en format de input stream, alors, lrosque je veux le récupèrer je le récupère comme input stream, autrement dit, comment mettre la chaine récupèrée dans le modèle excel désiré.
    exemple : j'ai le fichier contient deux classeur et chaque classeur contient 3 colonnes,je l'enregistre, lorsque je veux le récupèrer est ce possible d'avoir la même structure de fichier automatiquement?
    une deuxième question est ce bien d'abord d'enregistrer unt el ficheir dans la base?quels sont les risques qu'on peut avoir?.
    par avance merci.

Discussions similaires

  1. Charger un fichier Excel dans une base Oracle V9
    Par MAXJEREM dans le forum SQL
    Réponses: 4
    Dernier message: 17/04/2013, 16h24
  2. Importer un fichier excel dans une base Oracle
    Par miketidy dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/07/2008, 16h33
  3. [MySQL] Débutant - Insertion d'un fichier excel dans une base mysql
    Par kurkaine dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/12/2006, 18h44
  4. Transferer un fichier excel dans une base mysql
    Par rane dans le forum Outils
    Réponses: 3
    Dernier message: 15/11/2006, 18h47
  5. 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, 11h01

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