Accueil > Forum > > > > Inserer un fichier dans oracle (8i et plus)
Inserer un fichier dans oracle (8i et plus)
mercredi 7 novembre 2007 à 13:23:27 |
Inserer un fichier dans oracle (8i et plus)

MarsOran
|
Bonjour,
Je souhaite insérer un fichier dans oracle dans un champs de type BLOB.
En regardant sur le forum (et sur le net), je trouve une proposition
qui est de passer par le BlobDomain ! cette solution ne dit pas comment
insérer le fichier une fois transformé en un blobDomain !!
question : ou trouver le package oracle.jbo ? (j'utilise le fameux classe12.jar, qui ne contient pas oracle.jbo... !).
si quelqu'un connait la démarche complète pour insérer le BlobDomaine je suis preneur.
d'ailleurs, je serais aussi preneur pour une autre solution, le but
étant d'insérer un fichier dans un champ blob d'Oracle (c'est fou comme
je ne trouve pas d'exemples sur le net pour un sujet assez courant à
mon sens ).
Merci beaucoup de votre aide.
salut.
|
|
mercredi 7 novembre 2007 à 14:37:52 |
Re : Inserer un fichier dans oracle (8i et plus)

the_wwt
|
Bonjour, en fait il faut pas gérer cela avec java.sql.Blob mais avec l'implementation faite par oracle. Télécharge le jdbc oracle. Puis tu fais cela:
public static void main(String[] args) throws ClassNotFoundException, SQLException{ String fileName = args.length == 1 ? args[0] : "toto.txt"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connexion = DriverManager.getConnection("jdbc:oracle:thin@localhost:1521:mydb","sa",""); PreparedStatement st = connexion.prepareStatement("insert into blobs values(?, ?)"); st.setLong(1, 1l); prepareStatementOracleBlob(st, readFile(fileName), 2); st.execute(); st.close(); connexion.close(); } /** * Set a blob into a OraclePreparedStatement. * @param st The statement instanceof OraclePreparedStatement * @param content The blob content * @param index The index of the blob in the sql expression. * @throws SQLException If an error occurs while setting blob. */ public static void prepareStatementOracleBlob(PreparedStatement st, byte[] content, int index) throws SQLException{ if (content == null) { st.setNull(index, Types.BINARY); } else if (st instanceof oracle.jdbc.OraclePreparedStatement) { oracle.jdbc.OraclePreparedStatement ost = (oracle.jdbc.OraclePreparedStatement) st; oracle.sql.BLOB blob = oracle.sql.BLOB.createTemporary(st .getConnection(), false, oracle.sql.BLOB.DURATION_SESSION);
blob.open(oracle.sql.BLOB.MODE_READWRITE);
OutputStream out = blob.getBinaryOutputStream();
try { out.write((byte[]) content); out.flush(); out.close(); } catch (IOException e) { throw new SQLException("Failed write to blob " + e.getMessage()); } blob.close(); ost.setBLOB( index, blob); } else throw new InvalidParameterException("The prepared statement is not an instance of oracle.jdbc.OraclePreparedStatement, it is a " + st.getClass()); } private static byte[] readFile(String fileName) { byte[] content = new byte[0]; byte[] buffer = new byte[ (int) (5 * Math.pow(2, 20)) ]; // 5 mo int read = 0; BufferedInputStream bi = null; try{ bi = new BufferedInputStream( new FileInputStream( fileName ) ); while( ( read = bi.read( buffer ) ) > 0 ){ byte[] tmp = content; content = new byte[tmp.length + read]; System.arraycopy(tmp, 0, content, 0, tmp.length); System.arraycopy(buffer, 0, content, tmp.length, read); } }catch (Exception e) { e.printStackTrace(); }finally{ try{ if( bi != null ) bi.close(); }catch (Exception e) { e.printStackTrace(); } } return content; }
|
|
lundi 12 novembre 2007 à 10:44:27 |
Re : Inserer un fichier dans oracle (8i et plus)

MarsOran
|
Merci pour ta réponse. je ne savais qu'il existait un jdbc oracle ! ou je peux le télécharger ? sinon, as tu la méthode inverse (pour lire un fichier de Oracle). t'aurais pas par hasar une doc ou un lien vers un article (exemples, tutos..etc) traitant du sujet ? j'ai du mal à trouver quelque chose de sérieux sur le sujet. encore une fois, merci pour ta réponse. MarsOran.
|
|
lundi 12 novembre 2007 à 10:53:37 |
Re : Inserer un fichier dans oracle (8i et plus)

the_wwt
|
Bonjour, Pour le driver oracle tu tapes jdbc oracle et tu vas tomber sur le site d'Oracle... Ensuite pour lire un blob, no problem, c'est comme si tu lisais n'importe kel autre type. C'est juste l'écriture qui diffère car tu prend "un socket write error" si tu ne le fais pas comme cité précedement. ( SQL limite la taille des colonnes à 4 kilo alors qu'un lob peut contenir 4go). De la doc, il n'y en pas trop dessus, essaye d'associer hibernate dans ta recherche car c'est ainsi que j'ai trouvé le bout de code précédant. En tout cas, c'est la galère pour les infos car la politique pour la gestion des fichiers est l'externalisation, autrement dit avec le système de fichiers du serveur et non dans la base. Ca se discute... Bon courage, cordialement Pierrick
|
|
lundi 3 mars 2008 à 15:09:52 |
problem deconnection a oracle 8i avec java

amedlang1
|
salut tous: quelqu'un me permet d'aider de creer un code java me permet de connecter a oracle8i en detailler toutes les instructions necessaires pour la configuration ... et merci.
|
|
mardi 4 mars 2008 à 18:40:29 |
classe12

amedlang1
|
téléchargement de classe12.jar? qq'un me permet d'aider?
|
|
Cette discussion est classée dans : fichier, insérer, oracle, inserer, 8i
Répondre à ce message
Sujets en rapport avec ce message
Conversion de caractères Java-Oracle [ par CLASSPATH ]
Bonjour,Je travaille sur une BD Oracle 9.i et j'extrait des données par des procédures stockées. Ces procédures renvoient des 'OBJECT' déclarés dans l
Insérer le texe dun fichier txt dans une JDialog!! [ par Leneuf8000 ]
Salut!J'aimerais afficher le texte d'un fichier txt dans une JDialog au moment ou l utilisateur clique sur le bouton de ma fenetre principal.Je voudra
inserer et retirer des image d'une base oracle [ par stefane ]
Bonsoir a tousje suis debutant en ajava et j'aimerai savoir comment inserer une image dans une base oracle en utilisant le type BLOB pour stocker l'i
inserer un fichier dans une BD avec UPDATE [ par rakyouna ]
Bonjour,Pour inserer un fichier dans ma BD MySQL, j'utilise le bout de code suivant:File myFile = new File(location);FileInputStream istreamFile = new
Generer le fichier a partir d Oracle [ par mouzoun_issam ]
J'ai creer une base de donnees dans oracle, et je veux faire une copie de cette base de donnees dans au autre poste oracle, mais je ne sais pas commen
inserer des balises dans un fichier texte [ par ikoita ]
Bonjour tout le monde, je travail sur la realisation d'une ontologie. j'ai besoin d'aide pour inserer des balises dans un fichier texte.au faut mon tr
Jbuilder 9 et oracle 8i [ par sly_dj ]
bonjour a tous, je suis entrain de developper une application avec Jbuilder 9, j'ai utiliser oracle 8i pour creer ma base de données, petit probleme
insérer espaces [ par bossou ]
Bonjour.j'ai un fichier texte dans lequel je voudrais insérer des espaces à la fin de chaque ligne jusqu'à atteindre 119 caractères par ligne.j'ai ess
depuis un fichier texte vers une base de donnee oracle [ par foulla002 ]
salut tout le mondeest ce que quelqu'un pourra me donner une reference ou un exemple de code qui pourra me transformer un fichier .txt sous un cerain
Problème id avec Hibernate [ par CharlEm80 ]
Bonjour,J'ai un problème avec Hibernate. En fait je ne fais que charger un fichier formaté dans un table Oracle.Dans ma table Oracle j'ai une séquence
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|