Bonjour,

je travaille sur une application Struts utilisant une base oracle et j'ai un problème lors d'une requête mettant à jour un enregistrement contenant des CLOB.

Voici un extrait de code dans lequel j'ai reduit la requete aux champs qui posent probleme pour des raisons de clarté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
String req = "UPDATE FICHE SET DESCRIPTION = ? , MODIFICATION = ? "
	+ "WHERE idFiche = ? ";
 
pStmt = conn.prepareStatement(req);
 
stringReader = new StringReader(fiche.getDescription());
pStmt.setCharacterStream(1, stringReader, fiche.getDescription().length());
 
stringReader = new StringReader(fiche.getModification());
pStmt.setCharacterStream(2, stringReader, fiche.getModification().length());
 
pStmt.setInt(3, 1);
pStmt.executeUpdate();
J'ai donc 2 champs, description et modification, qui doivent être enregistrés en base dans des champs de type CLOB.

Mon problème est que les contenus de "description" et "modification" sont échangés dans le cas où "description" > 4000 caractères et "modification" > 1000.

Dans tous les autres cas, tout fonctionne bien.

La je sèche un peu, si quelqu'un a une idée, je suis preneur.

Merci