Re: Inserer un fichier dans oracle (8i et plus)
Bonjour,
La solution que je te propose est liée à l'utilisation du package ojdbc14.jar car nous utilisons une version 9i d'Oracle.
L'opération se fait en 3 étapes chez nous :
_ insertion dans la base d'un champ blob vide pour réserver l'espace
_ récupération d'un pointeur sur l'enregistrement
_ insertion du contenu du blob
try {
Connection conn =ConnexionManager.getInstance().reserverConnexion();
Statement s1 = conn.createStatement();
ResultSet rs = null;
// Etape 1 : création de la ligne et matérialisation du pointeur sur le blob
s1.execute("INSERT INTO TABLE_BLOG ( id,champ_blog ) values ( 1,EMPTY_BLOB())");
// Etape2 : récupération du pointeur sur le blob
rs = s1.executeQuery("SELECT champ_blog FROM TABLE_BLOG where id= 1 FOR UPDATE");
if (rs.next()) {
BLOB l_blob = (BLOB) rs.getBlob(1);
// Etape3 : alimentation du blob
OutputStream l_ostream = l_blob.getBinaryOutputStream();
l_ostream.write(p_objetBean.getAsBytes());
l_ostream.close();
}
s1.close();
conn.close();
} catch (SQLException e1) {
// TODO Bloc catch auto-généré
e1.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (TibrvException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
Bonjour,
La solution que je te propose est liée à l'utilisation du package ojdbc14.jar car nous utilisons une version 9i d'Oracle.
L'opération se fait en 3 étapes chez nous :
_ insertion dans la base d'un champ blob vide pour réserver l'espace _ récupération d'un pointeur sur l'enregistrement
_ insertion du contenu du blob